1

如何修改此 ffmpeg 字符串以生成具有不同视频比特率的多个输出?这可以在 yadif=1 消耗大量电量时节省时间。此外,不能让它在 Windows 中接受 yadif_cuda。

ffmpeg -y -f lavfi -i anullsrc=cl=mono:sample_rate=48000 -i "test.mxf" -vf yadif=1 -s 1920:1080 -c:v h264_nvenc -force_key_frames "expr:gte(t,n_forced* 10)" -pix_fmt yuv420p -preset slow -rc vbr_hq -b:v 4.5M -map 1:v -map 0:a -c:a aac -b:a 192k -shortest "test.mp4"

4

2 回答 2

1

实施我的评论

shortest 是一个输出选项。您的命令对视频进行去隔行和缩放两次。使用 filter_complex,deint 和 scale 一次,然后使用 split 产生两个输出。每个输出映射一个。

ffmpeg -y -i "test.mxf" -f lavfi -i anullsrc=cl=mono:sample_rate=48000 -filter_complex "yadif=1,scale=1920x1080,format=yuv420p,split=2[90m][45m]" -map "[90m]" -map 1:a -force_key_frames "expr:gte(t,n_forced*10)" -c:v h264_nvenc -preset slow -rc vbr_hq -b:v 9.0M -c:a aac -b:a 192k -shortest -fflags +shortest -max_interleave_delta 200M "test90m.mp4" -map "[45m]" -map 1:a -force_key_frames "expr:gte(t,n_forced*10)" -c:v h264_nvenc -preset slow -rc vbr_hq -b:v 4.5M -c:a aac -b:a 192k -shortest -fflags +shortest -max_interleave_delta 200M "test45m.mp4"

于 2021-09-28T07:00:15.170 回答
0

最后一个“-i”选项之后的所有内容都定义了输出选项,因此您必须重复所有输出选项,仅更改您想要不同的选项。

例如

ffmpeg -y -f lavfi -i anullsrc=cl=mono:sample_rate=48000 -i "test.mxf" -shortest \
-vf yadif=1 -s 1920:1080 -c:v h264_nvenc -force_key_frames "expr:gte(t,n_forced*10)" -pix_fmt yuv420p -preset slow -rc vbr_hq -b:v 4.5M -map 1:v -map 0:a -c:a aac -b:a 192k "test.mp4" \
-vf yadif=1 -s 1920:1080 -c:v h264_nvenc -force_key_frames "expr:gte(t,n_forced*10)" -pix_fmt yuv420p -preset slow -rc vbr_hq -b:v 9.0M -map 1:v -map 0:a -c:a aac -b:a 192k "test2.mp4"

请注意,这-shortest是一个输入选项,因此只能指定一次。

于 2021-09-24T14:11:33.007 回答