FFMPEG HLS视频质量缩放

时间:2018-02-02 14:12:30

标签: ffmpeg

在我的代码中,我尝试以不同的质量生成单个视频的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

1 个答案:

答案 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告诉编码器保持恒定的质量。较低的值会产生更好的质量但尺寸更大。