Search code examples
pythonffmpegffmpeg-python

How can I cut a video to a certain length and add an intro video to it using ffmpeg-python?


How can I cut a video to a certain length and add an intro video to it using ffmpeg-python?

I am doing this:

intro = ffmpeg.input(intro)
mainvid = ffmpeg.input(mainvid)

v1 = intro.video
a1 = intro.audio
v2 = mainvid.video
a2 = mainvid.audio

joined = ffmpeg.concat(v1, a1, v2, a2, v=1, a=1).node
v3 = joined[0]
a3 = joined[1]

(
    ffmpeg
    .output(
        v3,
        a3,
        'out.mkv',
        vcodec='libx265', )
    .run()
)

But I don’t know how to cut *mainvid to a certain length like 10 minutes before joining. I know ss will help, but I don’t know how to use it for only mainvid.


Solution

  • I managed to do it using:

            intro = ffmpeg.input(intro)
            mainvid = ffmpeg.input(mainvid, ss='00:00:00', t='00:10:00') 
    
            v1 = intro.video
            a1 = intro.audio
            v2 = mainvid.video
            a2 = mainvid.audio
    
            joined = ffmpeg.concat(v1, a1, v2, a2, v=1, a=1).node
            v3 = joined[0]
            a3 = joined[1]
    
            (
                ffmpeg
                .output(
                    v3,
                    a3,
                    'out.mkv', 
                    vcodec='libx265', )
                .run()
            )