video - ffmpeg 在一个命令中剪切视频和刻录字幕

标签 video ffmpeg cut subtitle

我想从视频中剪下一段并在该段中刻录字幕。

我可以通过 3 个步骤做到这一点:

  • 剪下视频ffmpeg -ss 25:00 -to 26:00 -i vid.mp4 -c copy out.mp4
  • 剪掉字幕ffmpeg -i sub.srt -ss 25:00 -to 26:00 out.srt
  • 在视频片段中刻录字幕ffmpeg -i out.mp4 -vf subtitles=out.srt -c:a copy -y final.mp4

  • 但我想在一个 ffmpeg 命令中执行此操作。

    如果我这样做ffmpeg -ss 25:00 -to 26:00 -i vid.mp4 -vf subtitles=sub.srt -c:a copy -y final.mp4视频被剪切,但没有刻录字幕。
    这很快。

    如果我这样做ffmpeg -i vid.mp4 -ss 25:00 -to 26:00 -vf subtitles=sub.srt -c:a copy -y final.mp4视频被剪切,字幕正确刻录,但开始编写 final.mp4 有延迟。
    我认为 ffmpeg 从一开始就处理 vid.mp4 直到它到达 -ss时间(并放弃那部分)
    然后继续处理并将其写入 final.mp4

    有没有办法在一个 ffmpeg 命令中快速完成这项工作?
    喜欢ffmpeg直接去-ss时间和剪切,处理它,在其中刻录字幕。

    谢谢

    最佳答案

    是的,字幕过滤器在内部打开字幕文件,并且不知道视频的搜索点,因为 ffmpeg 在搜索后重置时间戳。

    所以保留源时间戳,然后重置它们,即

    ffmpeg -ss 25:00 -to 26:00 -copyts -i vid.mp4 -vf subtitles=sub.srt  -c:a copy -ss 25:00 -y final.mp4
    

    关于video - ffmpeg 在一个命令中剪切视频和刻录字幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59575292/

    相关文章:

    ios - 我想在 iOS 中使用自定义控件捕获方形视频

    javascript - 同步 HTML5 <video> 与 <audio> 播放

    .net - 使用 Flash 或 .NET 以移动图像作为叠加层的视频

    c++ - libav 生成具有极高帧速率的 MP4 文件

    regex - 打印字段也包含 FS 字符?

    flash - 如何检测视频何时缓冲?

    ffmpeg CLI 设置 -r 30 如果输入 => 30 fps,否则 -r 如果 < 30 fps 则采用输入 fps

    ios - 使用 ffmpeg 提取的电视音频在 iOS 中不起作用(但在模拟器中起作用)

    grep - 如何始终从 `ps aux`命令中截取PID?

    bash - 剪切命令包含一个令人困惑的 head 命令的空格?