在我的代码中,我尝试以不同的质量生成单个视频的m3u8
格式。我的代码能够生成m3u8
,但没有质量,它采用其原始帧高度和宽度而不是我定义的帧高度和宽度。我对它进行了研究,但我无法完成目标。因为我是ffmpeg
的新手。我不太了解命令及其修复,但我知道我在做错了什么
这是我的示例命令列表
//144p
ffmpeg -i test_video.mp4 -vf scale=256:144 -vcodec copy -acodec copy -vbsf h264_mp4toannexb -hls_time 2 -hls_list_size 999999999 out/144_vid.m3u8
//240p
ffmpeg -i test_video.mp4 -vf scale=426:240 -vcodec copy -acodec copy -vbsf h264_mp4toannexb -hls_time 2 -hls_list_size 999999999 out/240_vid.m3u8
//360p
ffmpeg -i test_video.mp4 -vf scale=640:360 -vcodec copy -acodec copy -vbsf h264_mp4toannexb -hls_time 2 -hls_list_size 999999999 out/360_vid.m3u8
答案 0 :(得分:1)
由于您要复制视频流,因此无法对其应用过滤器。
您必须对视频流进行编码,例如
ffmpeg -i test_video.mp4 -vf scale=256:144 -vcodec libx264 -crf 23 -acodec copy -vbsf h264_mp4toannexb -hls_time 2 -hls_list_size 999999999 out/144_vid.m3u8
libx264
使用x264编码器。 CRF 23告诉编码器保持恒定的质量。较低的值会产生更好的质量但尺寸更大。