小编Mik*_*aum的帖子

使用ffmpeg剪切视频的多个部分

在尝试执行的操作中,我需要删除视频文件的某些部分,然后从中创建一个新文件。

例如,从这样的视频文件中:

===================
Run Code Online (Sandbox Code Playgroud)

我切了两次

======||=====||||==
Run Code Online (Sandbox Code Playgroud)

并生成一个新的较小的视频文件:

=============
Run Code Online (Sandbox Code Playgroud)

当我说2时,我指的是任意数量的单独剪切,具体取决于视频文件。

如果我只想切割一部分,我会做:

ffmpeg -i video.mp4 -ss 00:00:03.500 -to 00:00:08.500 -async 1 cut.mp4 -y
Run Code Online (Sandbox Code Playgroud)

哪个完美。我也许可以这样做很多次,然后将所有片段合并在一起……但是对于较大的视频文件,这是非常低效的。

要进行两次切割,我正在查看filter_complex。我一直在努力使其正确运行几个小时,但似乎无法正常工作:/

如果我做这样的事情,我会得到没有音频的视频:

command  = 'ffmpeg -i video.mp4 \
    -filter_complex "\
        [0]trim=start_frame=10:end_frame=20[v0];\
        [0]trim=start_frame=30:end_frame=40[v1];\
        [v0][v1]concat=n=2[v5]"\
     -map [v5]  -async 1 output.mp4'
Run Code Online (Sandbox Code Playgroud)

如果我尝试这样做,事情就会一团糟:

ffmpeg -y -i video.mp4 \
    -filter_complex "\
        [0:v]trim=start_frame=10:end_frame=20[v0];\
        [0:a]atrim=start=10:end=20[a0];\
        [0:v]trim=start_frame=30:end_frame=40[v1];\
        [0:a]atrim=start=30:end=40[a1];\
        [v0][a0][v1][a1]concat=2:v=1:a=1[v5][a]"\
     -map [v5] -map [a] -async 1 output.mp4
Run Code Online (Sandbox Code Playgroud)

我什至尝试使用ffmpeg-python https://github.com/kkroening/ffmpeg-python在Python中做到这一点,但我也无法获得音频。

谁能在这方面给我一些帮助?非常感谢你!!

python video ffmpeg

6
推荐指数
1
解决办法
2492
查看次数

标签 统计

ffmpeg ×1

python ×1

video ×1