Cut multiple videos and merge with ffmpeg

后端 未结 2 1901
梦谈多话
梦谈多话 2021-02-06 05:50

How can I cut a video into multiple parts and then join them together to make a new video with ffmpeg?

相关标签:
2条回答
  • 2021-02-06 06:38

    You can use the concat demuxer.

    #1 Create a text file

    file video.mp4
    inpoint 34.5
    outpoint 55.1
    file video.mp4
    inpoint 111.0
    outpoint 155.3
    file video.mp4
    inpoint 278
    outpoint 316.4
    

    The inpoint/outpoint directives specify the trim in and out points in seconds for the file listed above them.

    #2a Create the joint file

    ffmpeg -f concat -i list.txt combined.mp4
    

    #2b Do the overlay together

    ffmpeg -f concat -i list.txt -i background.mp4 -filter_complex "[0:v]scale=400:400[v1];[1:v][v1]overlay=0:0:shortest=1" -shortest -preset superfast "output.mp4"
    

    External Audio stream with concat

    ffmpeg -i 12m.mp4 -f concat -i list.txt -vf setpts=(PTS-STARTPTS)/1.1 -af atempo=1.1 -map 1:v -map 0:a -shortest new.mp4
    
    0 讨论(0)
  • 2021-02-06 06:42

    You question is quiet general...
    The following example may help you, but it might not solve your specific issues.

    The example applies three stages:

    • Create synthetic video (with no audio):

      ffmpeg -f lavfi -i testsrc=duration=3:size=160x120:rate=10 -c:v rawvideo -pix_fmt rgb24 testsrc.avi
      

      (The created video is uncompressed).
      Reference: https://trac.ffmpeg.org/wiki/FilteringGuide

    • Cut video into 3 parts (creating 3 video files):

      ffmpeg -i testsrc.avi -ss 00:00:00 -c copy -t 00:00:01 sec0.avi
      ffmpeg -i testsrc.avi -ss 00:00:01 -c copy -t 00:00:01 sec1.avi
      ffmpeg -i testsrc.avi -ss 00:00:02 -c copy -t 00:00:01 sec2.avi
      

      Reference: https://superuser.com/questions/138331/using-ffmpeg-to-cut-up-video

    • Concatenate (merge) 3 parts in reverse order:

      ffmpeg -i "concat:sec2.avi|sec1.avi|sec0.avi" -codec copy output.avi
      

      Note: for Linux use single quotes '
      Reference: Concatenate two mp4 files using ffmpeg

    Synthetic video looks as the following image:

    0 讨论(0)
提交回复
热议问题