FFMPEG filter_complex具有加速,字幕和缩放功能

时间:2015-12-11 10:15:43

标签: video filter ffmpeg command-line-tool

您好我正在尝试将文件转换为特定的帧速率并删除任何抖动,跳转屏幕。我也尝试提高音量并添加字幕叠加。我遇到了关于curent线的错误,而不允许将complex_filter与vf和af结合使用。作为一个额外我还想在左角添加文本(我还没有尝试),并希望屏幕大小为全高清(改变比例为1920:1080但没有成功)。

ffmpeg -i movie.mp4 -r 25 -filter_complex "[0:v]setpts=0.959*PTS[v];[0:a]atempo=1.0427[a]" -map "[v]" -map "[a]" -vf subtitles=sub.srt,scale=1920:1080 -af volume=2 -strict -2 -preset veryfast movie_new.mp4

知道了!

新:

ffmpeg -i inside.mp4 -r 25 -filter_complex "[0:v]setpts=0.959*PTS[i];[i]scale=1920:1080[j];[j]subtitles=inside.srt[k];[0:a]atempo=1.0427[p];[p]volume=2[q]" -map "[k]" -map "[q]" -strict -2 -preset veryfast inside_new.mp4

但现在有一个新问题。子不同步:P是否有一个简单的解决方案或我首先需要编码没有子然后重新同步然后编码与子?

通过Subtitle Resync Tool

的方式找到此链接

moviespeed更改为0.959。我可以做一个计算来调整x毫秒的字幕吗?

编辑:字幕工作室修改了字幕。只是一个小的设置来改变直接转移所有文本:)

1 个答案:

答案 0 :(得分:2)

您可以尝试使用以下命令,因为ffmpeg限制使用-vf-af选项与-filter_complex一起使用:

    ffmpeg -i movie.mp4 -i sub.srt -r 25 -filter_complex \
           "[0:v]setpts=0.959*PTS[i];[i]scale=1920:1080[j];[j][1:s]overlay[k];\
            [0:a]atempo=1.0427[p];[p]volume=2[q]" -map "[k]" -map "[q]" \
            -strict -2 -preset veryfast movie_new.mp4
  • [0:v]指的是第一个输入,即movie.mp4
  • [1:s]指第二个输入,即字幕输入文件(sub.srt)

过滤器需要以所需的方式连接,不一定如上所述。实际上,-vf-af-filter_complex的目的相同,但最简单。这就是ffmpeg使用-filter_complex-vf和/或-af

结合使用的原因