关于 javacv hls 切片结果很模糊的为

2022-07-15 13:07:53 +08:00
 sun5244725

最近接触了 javacv 准备弄一个 mp4 切片 m3u8 的工具。

网上找了一些资料,也直接扣了别人的 demo 来运行。

但是最终出来的视频播放效果都很模糊

不知道是不是哪里姿势不对 有大佬能指点一下吗

   public static void hls(String input) throws Exception, org.bytedeco.javacv.FrameGrabber.Exception {
        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(input);
        grabber.start();
        int frameRate = 25;
        String output="D:\\test\\hls";
        FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(output+"\\index.m3u8", grabber.getImageWidth(), grabber.getImageHeight(), grabber.getAudioChannels());
        recorder.setFormat("hls");
        recorder.setOption("hls_time", "2");
        recorder.setOption("hls_list_size", "0");
        recorder.setOption("hls_segment_type", "mpegts");
        recorder.setOption("strftime", "1");
        recorder.setOption("hls_segment_filename", output+"\\%Y%m%d_%H%M%S.ts");
        recorder.setFrameRate(frameRate);//设置帧率
        recorder.setGopSize(2 * frameRate);//设置 gop
        recorder.setVideoQuality(1.0); //视频质量
        recorder.setVideoBitrate(3000);//码率
        recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
        recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC);
        recorder.start();
        Frame frame = null;
        // 只抓取图像画面
        for (; (frame = grabber.grabImage()) != null; ) {
            try {
                recorder.record(frame);
            } catch (org.bytedeco.javacv.FrameRecorder.Exception e) {
                e.printStackTrace();
            }
        }
        recorder.close();
        grabber.close();
    }
868 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/866400

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX