On Tue, 31 May 2022 13:15:02 +0200, Michael Koch <astroelectro...@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 >> <astroelectro...@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? -- Bo Berglund Developer in Sweden _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".