You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FFmpeg生成多清晰度HLS视频遇问题:自定义分辨率未生效求助

解决FFmpeg生成HLS时自定义分辨率不生效的问题

嘿,我看到你在尝试用FFmpeg生成不同清晰度的m3u8流时遇到了分辨率没变化的问题——这其实是个很典型的新手误区,我来帮你理清问题并给出修复方案!

问题根源

你当前命令里的-vcodec copy(或者缩写-c:v copy)是直接复制原始视频流,这会让FFmpeg跳过所有需要重新编码视频的操作(包括你加的-vf scale滤镜)。滤镜处理必须在视频编码阶段完成,所以直接复制流的话,scale根本不会被执行,视频自然还是原始分辨率。

修复后的命令

把-vcodec copy替换成具体的视频编码器(比如H.264的libx264),这样FFmpeg就会重新编码视频,同时应用scale滤镜。下面是修正后的各分辨率命令:

144p 命令

ffmpeg -i test_video.mp4 -vf scale=256:144 -c:v libx264 -c:a 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 -c:v libx264 -c:a 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 -c:v libx264 -c:a copy -vbsf h264_mp4toannexb -hls_time 2 -hls_list_size 999999999 out/360_vid.m3u8

额外优化小贴士

  • 控制视频质量:可以添加-crf 23参数(默认值,数值范围18-28,越小质量越高),比如:
    ffmpeg -i test_video.mp4 -vf scale=256:144 -c:v libx264 -crf 23 -c:a copy -vbsf h264_mp4toannexb -hls_time 2 -hls_list_size 999999999 out/144_vid.m3u8
    
  • 平衡编码速度与压缩率:添加-preset medium(默认),如果想更快编码用-preset fast,想更好的压缩效果用-preset slow。
  • 保持宽高比:如果不想强制拉伸视频,可以用scale=w=256:h=-2(自动计算高度,保持原始宽高比)或者scale=w=-2:h=144(自动计算宽度),避免画面变形。

内容的提问来源于stack exchange,提问作者Rtra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:19:51