[FFmpeg-user] Multiple parts of a video

Paul B Mahol onemda at gmail.com
Tue May 31 19:23:40 EEST 2022


On Tue, May 31, 2022 at 6:15 PM Bo Berglund <bo.berglund at gmail.com> wrote:

> On Tue, 31 May 2022 13:15:02 +0200, Michael Koch <
> astroelectronic at t-online.de>
> wrote:
>
> >Am 31.05.2022 um 11:17 schrieb Bo Berglund:
> >> On Sun, 29 May 2022 13:17:55 +0200, Michael Koch <
> astroelectronic at t-online.de>
> >> wrote:
> >>>>> Using concat filter.
> >>>> That is exactly what I already know: cutting the different parts.
> >>>> Probably one command for each part and then concatenate them.
> >>>> So n + 1 commands.
> >>>> My question was: can it be done with one command?
> >>>>
> >>> Please have a look at
> >>> https://trac.ffmpeg.org/wiki/Concatenate
> >>>
> >>> "Concat demuxer", "Concat protocol" and "Concat filter" are three
> >>> different things.
> >>> You did use the concat demuxer. Now if you want to do all in one line,
> >>> you must use the concat filter.
> >>>
> >>> Michael
> >> Stepping in here due to the interesting topic:
> >>
> >> I am daily using a tool I created myself to use ffmpeg to remove ads
> from
> >> recorded mp4 TV news videos.
> >> What I do is the following:
> >> - I manually scan the video to find the start/end times of the ads
> (seconds)
> >> - From this list the tool creates the ffmpeg commands to extract the
> parts
> >> *between* the ads as separate numbered mp4 files
> >> - Then a list of these small files is written to a file $JOINFILE
> >> - This is then used in an ffmpeg call like this:
> >>    ffmpeg -f concat -safe 0 -i $JOINFILE -c copy $TARGETFILE
> >> - When this is done the small files and $JOINFILE are deleted
> >>
> >> So reading this thread I get the feeling that there is a way to use the
> list of
> >> cut times in a *single ffmpeg command* to create the output mp4 file
> *without*
> >> creating the list file and essentially doing everything in this single
> ffmpeg
> >> command.
> >
> >I have a short example in chapter 2.57 of my book:
> >http://www.astro-electronic.de/FFmpeg_Book.pdf
> >
>
> Michael, thanks a lot for your input!
>
> When using your book link I landed in a directory where I already had the
> April
> 25, 2021 version! Downloaded 13 months ago...
>
> This new version from May 28, 2022 is greatly expanded going from 553 to
> 821
> pages!
> Great work, thank you!
>
>
> So when I read the ch 2.57 I see that the sources of the concatenation
> operation
> are actual multiple video files.
>
> This is what I am already doing but it is a multiple-step process where
> there is
> one step where the short video files are created by cutting out of the main
> input video files based on start time and length for each cut. (Resolution:
> seconds.)
>
> Then these are pasted together using the concat with copy since they are
> cutouts
> from the same single input video and thus share the format.
>
> What has been asked in this thread is if there is a way to *combine* these
> operations such that there is no need for intermediate files...
>
> I.e. can ffmpeg be commanded to extract the sections to concatenate and
> feed
> them one after another into the concat operation without landing in a temp
> file
> inbetween?
>
> Further notes about your book example 2.57:
> -------------------------------------------
>
> The first line states:
> "In this example the concat filter is used for input videos of the same
> size and
> no audio."
>
> No audio is a non-starter for me.
>
> I need the audio to also be present in the output with preserved
> audio/video
> sync.
>
> It also says:
> "This filter does re-encode the videos, ..."
>
> Also something I want to avoid since it takes a long time to do and seems
> un-necessary since all of the parts being concatenated come from one and
> the
> same source video where parts are being edited out. Thus they share the
> same
> format.
>
> Basically when editing a single source video (with audio) the re-encoding
> should
> not be needed, right?
> Or am I missing something due to the use of compression?
>
> Every now and then some nob comes around with similar requests.

There is no straightforward bulletproof way to achieve this without
re-encoding and at same time using random videos as inputs,

Feel free to prove me wrong.


>
> --
> Bo Berglund
> Developer in Sweden
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>


More information about the ffmpeg-user mailing list