【问题标题】:FFmpeg trim and loop videoFFmpeg 修剪和循环视频
【发布时间】:2018-11-24 22:48:43
【问题描述】:

在我的场景中,我想修剪源视频并将其循环指定时间。下面是我的代码

ffmpeg -i source.mp4 -filter_complex "[0:v]trim=start=6:end=46,loop=5[vf];[0:a]atrim=start=6:end=46,aloop=5[af]" -map "[vf]" -map "[af]" output.mp4 -y

为此,我必须获得 200 秒的视频作为 output.mp4。但我得到了时长 40 秒的视频。

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    您需要在loopaloop 过滤器中指定要循环的最大帧数/样本数,因为默认情况下它设置为 0。例如;

    [0:v] loop = '5 : 10'
    

    输出[0:v] 不变,然后它的前 10 帧循环 5 次。并且不要忘记修复修剪输出的时间戳。

    所以,使用这个过滤器可以实现你想做的事情(假设输入帧率为 30fps,采样率为 48k/s)

    [0:v] trim = 'start = 6 : end = 46',
    setpts = 'PTS - STARTPTS',
    loop = 'loop = 4 : size = 40 * 30' [vf];
    [0:a] atrim = 'start = 6 : end = 46',
    asetpts = 'PTS - STARTPTS',
    aloop = 'loop = 4 : size = 40 * 48000' [af]
    

    【讨论】:

    • 循环过滤器将尝试根据大小值分配内存。最好保守一点。
    猜你喜欢
    • 1970-01-01
    • 2017-05-05
    • 2018-02-07
    • 2015-10-27
    • 2023-04-02
    • 2023-02-02
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多