实用工具

码率 · 存储 · FFmpeg 命令生成器

展厅里三个反复要算的数:这段素材有多大、这块盘装得下多久、这台机器读不读得动。 填码率和时长一起算出来,顺带生成一条可以直接复制运行的转码命令, 把「算完还要去查参数怎么写」这一步也省掉。

单条文件大小
1.11 GB
合计码率 30.19 Mbps
持续读取需求
3.77 MB/s
单路
按上面的参数生成转码命令
可直接复制运行
ffmpeg -i input.mp4 -vf scale=1920:1080 -c:v libx264 -b:v 30M -maxrate 30M -bufsize 60M -r 25 -c:a aac -b:a 192k -movflags +faststart output.mp4

命令里把输入输出写成了占位的文件名,实际用时替换成你的路径。-maxrate-bufsize 是为了压住码率峰值—— 展厅素材的读取压力由峰值决定,不是由平均码率决定。

怎么用

算体积:填视频码率、音频码率、时长,得到单条文件大小。 素材还没做出来但要提前规划存储时用这个。

算读取压力:这是最实用的一项。持续读取速率拿去跟播控机素材盘的能力对比, 判断这台机器扛不扛得住。多路同时播要按路数相乘——这个数很容易被低估。

生成转码命令:下半部分选编码器、输出尺寸、帧率,直接给出可复制的 FFmpeg 命令。 参数含义在页面里解释过,别照抄不懂——尤其是码率上限和缓冲区那两个,它们是专门为展厅的读取压力加的。

常见问题

为什么工具不给「某分辨率应该用多少码率」的推荐值?
因为那类数值随编码器、内容类型、画质要求变化很大,写死一个数会误导。同样是 4K,实拍的运动画面和渲染的静态展示,合适的码率能差好几倍。可靠的做法是转两三个不同码率的版本,在实际的屏幕上对比,选那个「再降就看得出来」的档位——展厅的实际需求往往低于内容方的默认导出值。
持续读取速率这个数怎么用?
拿它跟播控机素材盘的持续读取能力对比。展厅播放卡顿有一类根因就是硬盘读不上来——机械硬盘的持续读取能力有限,高码率素材放上去就是卡。多路同时播的时候要按路数相乘,这个数很容易被低估。如果算出来接近或超过硬盘能力,要么换固态,要么把码率降下来。
-maxrate 和 -bufsize 是干什么的?
压住码率峰值。视频编码里平均码率和瞬时峰值可以差很多——一段静止画面码率很低,一段快速运动画面码率飙高。而展厅的读取压力是由峰值决定的,不是由平均码率决定的。加上这两个参数,编码器会把峰值限制住,代价是复杂画面的画质会稍降。展厅场景下这个取舍通常是划算的。
关键帧间隔要不要设?
展厅素材大多是无缝循环播放的,关键帧设置不当可能让循环接缝处出现闪烁或者卡一下。如果现场看到接缝有异常,这是可以调的一项。另外无损剪切的切点只能落在关键帧上,关键帧间隔小的话切点更精确。不确定的话可以先留空,出问题再回来调。

延伸阅读

素材播不了先查规格,用 MediaInfo; 批量统一规格用 HandBrake 的预设; 只是要裁一刀千万别转码,用 LosslessCut 几秒完成且画质零损失—— 这个判断见 《素材要剪要转,五款怎么分工》。 硬盘扛不扛得住可以先测一下,见 CrystalDiskMark

想让素材规格在入库时就被自动校验,而不是等现场播不出来?

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。