最近接触了 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(); }