从精确长度的 MP4 中提取视频剪辑

问题描述 投票:0回答:1

到目前为止,我尝试过的工具只提供了我指定的开始和结束时间的近似值。它们通常会关闭几秒钟。

我需要一个工具来在精确的开始和停止时间提取视频和音频,最好精确到毫秒。最好这样做而不会使原始视频质量明显下降。我也希望将音频保留在视频中。

video ffmpeg video-processing
1个回答
0
投票

使用这个 test 视频,我将一段 4 秒半的视频和音频剪成

new.mp4

ffmpeg -i sample-30s.mp4 -filter:v "trim=8.25:12.75,setpts=PTS-STARTPTS" -filter:a "atrim=8.25:12.75,asetpts=PTS-STARTPTS" -vcodec libx264 new.mp4

各种选项的意思是:

  • -filter:v
    是过滤视频和
    -filter:a
    是相同的音频。
  • trim=
    atrim=
    指定切割的开始和停止时间。
  • setpts=
    asetpts=
    应用 PTS-STARTPTS 过滤器 将输出文件中的时间戳更改为 0:00。
  • -vcodec libx264
    使用 x264 库。

时间戳可以采用多种形式,例如“23.189”表示 23.189 秒,“12:03:45”表示 12 小时 03 分 45 秒,以及 200000 微秒表示 0.2 秒。

您需要 setpts/asetpts 选项来重置时间戳,如 explained here:

请注意,帧是按时间戳顺序从每个输入视频中获取的,因此,如果它们的初始时间戳不同,最好通过 setpts=PTS-STARTPTS 过滤器传递两个输入,让它们以相同的零时间戳开始,就像电影过滤器的例子一样。

© www.soinside.com 2019 - 2024. All rights reserved.