【问题标题】:Multiple outputs from same source来自同一来源的多个输出
【发布时间】:2021-09-24 07:27:43
【问题描述】:

如何修改此 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"

【问题讨论】:

    标签: ffmpeg multipleoutputs


    【解决方案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"

    【讨论】:

      【解决方案2】:

      最后一个“-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 是一个输入选项,因此只能指定一次。

      【讨论】:

      • shortest 是一个输出选项。您的命令对视频进行去隔行和缩放两次。使用 filter_complex,deint 和 scale 一次,然后使用 split 产生两个输出。每个输出映射一个。
      • 你能给我一个带有 filter_complex 拆分和映射的字符串示例吗?
      • 觉得我明白了(有点); ffmpeg -y -hwaccel cuvid -i test.mxf -shortest -filter_complex "[0:v]yadif=1, scale=1920:1080,split=2[out1][out2]" -map "[out1]" -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 test2.mp4 -map "[out2]" -c:v h264_nvenc -force_key_frames " expr:gte(t,n_forced*10)" -pix_fmt yuv420p -preset slow -rc vbr_hq -b:v 9M test3.mp4 但是如何对音频进行一次编码并映射呢?
      猜你喜欢
      • 1970-01-01
      • 2019-01-18
      • 2019-10-07
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      相关资源
      最近更新 更多