小编Met*_*zer的帖子

批量 FFmpeg 编码 - 基于比特率的可变 CRF

我在运行 Ubuntu 的 VM 实例中使用 ffmpeg 将从各种流媒体站点下载的一些视频编码到 HEVC。目前我使用 bash 脚本来转换目录中的所有这些文件。这些视频的总体比特率在 300 kb/s 到 1500 kb/s 之间变化。在我的测试中,对所有这些视频使用相同的 CRF 会在高比特率视频的情况下产生更大的输出文件,或者在低比特率的情况下产生低质量的视频。目前我手动检查比特率并将类似的比特率文件移动到一个目录并每次都相应地更改 CRF。这是我用来检索比特率的命令:

find . -name "*.mp4" -print0 | xargs -0 -i{} sh -c " echo -n '{} ' && ffmpeg -i '{}' 2>&1 | sed -n -e 's/^.*bitrate: //p' "
Run Code Online (Sandbox Code Playgroud)

这是 bash 脚本。

#!/bin/bash -e
for i in ~/ffmpeg/*.mp4;    
do    
ffmpeg -i "$i" -c:v libx265 -crf 26 -c:a libopus -b:a 48k -vbr on -compression_level 10 -frame_duration 60 -application audio "${i%.*}.mkv"    
mv "${i%.*}.mkv" ~/ffmpeg/hevc …
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts ffmpeg encoding

2
推荐指数
1
解决办法
814
查看次数

标签 统计

bash ×1

command-line ×1

encoding ×1

ffmpeg ×1

scripts ×1