【问题标题】:Cut videos and stack them with hstack in ffmpeg at the same time剪切视频并同时在ffmpeg中与hstack叠加
【发布时间】:2018-07-18 20:27:11
【问题描述】:

我有两个要与 hstack 堆叠的视频。这些视频并不完全同步,所以我想从其中一个视频的开头剪掉一点,让它们完美同步。使用两个并发命令一切正常:

ffmpeg -ss 00:00:18 -i video1.mp4 -ss 00:00:02.000 -c:v libx264 left.mp4 

紧随其后

ffmpeg -i left.mp4 -i right.mp4 -filter_complex hstack output.mp4

但我想知道是否可以在堆叠的同时进行修剪,这样 ffmpeg 就不必对剪切的视频进行两次编码。这将为我节省大量时间,因为我将多次进行这种切割和合并。

我在一个命令中尝试了各种方法来实现这一点,但无济于事,所以我不得不求助于社区。感谢您的帮助!

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    对于一个普通的 MP4 文件,就这么简单

    ffmpeg -ss 20 -i left.mp4 -i right.mp4 -filter_complex hstack output.mp4
    

    【讨论】:

    • 这对精确定位有用吗?我在输入文件更快之前读到 -ss 并不能给出完全准确的结果。
    • 转码是准确的。流复制时不准确。
    • 不幸的是,使用此方法开始丢帧:ffmpeg -ss 00:00:30 -i set2-left.mp4 -i set2-right.mp4 -filter_complex hstack -t 20 testcombo2.mp4 给出一个警告:Past duration 0.999992 too large 并开始丢帧:frame= 50 fps=9.2 q=-1.0 Lsize= 301kB time=00:00:00.42 bitrate=5770.7kbits/s dup=1 drop=45 speed=0.0787x 而如果我首先重新编码修剪它们的文件并然后做 hstack,没有丢帧。
    • 您必须手动设置输出帧率等于两个视频的tbr 值中的较大者,以避免丢失。
    • 两个输入视频具有相同的 tbr (119.88) 并且手动设置该帧速率没有帮助。两个视频具有完全相同的特征:Stream #1:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 59964 kb/s, 119.88 fps, 119.88 tbr, 120k tbn, 239.76 tbc (default) .. 只是另一个视频的比特率略小(59941 kb/s)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 2017-10-01
    • 1970-01-01
    • 2015-08-19
    • 2019-11-17
    • 2012-08-03
    • 2019-09-29
    相关资源
    最近更新 更多