Note that there are some explanatory texts on larger screens.

plurals
  1. POConcatenate / Join MP4 files using ffmpeg and windows command line batch NOT LINUX
    primarykey
    data
    text
    <p>I've written a batch script that attempts to take a generic introductory title video (MP4) that runs for 12 seconds and attaches it to the beginning of 4 other MP4 videos (same video but each has a different language audio track)</p> <p>According to ffmpeg syntax here: <a href="http://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20concatenate%20%28join,%20merge%29%20media%20files" rel="nofollow">http://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20concatenate%20%28join,%20merge%29%20media%20files</a> the concat demuxer needs to be run from a text file that looks like this:</p> <pre><code># this is a comment file '/path/to/file1' file '/path/to/file2' file '/path/to/file3' </code></pre> <p>I believe everything in my script up until the point of joining the files appears to be working correctly. But I get this error:</p> <pre><code>[concat @ 04177d00] Line 2: unknown keyword ''C:\Users\Joe\1May\session3\readyforfinalconversion\frenchfile.mp4' filelistFrench.txt: Invalid data found when processing input [concat @ 03b70a80] Line 2: unknown keyword ''C:\Users\Joe\1May\session3\readyforfinalconversion\spanishfile.mp4' filelistSpanish.txt: Invalid data found when processing input [concat @ 0211b960] Line 2: unknown keyword ''C:\Users\Joe\1May\session3\readyforfinalconversion\basquefile.mp4' filelistBasque.txt: Invalid data found when processing input [concat @ 03a20a80] Line 2: unknown keyword ''C:\Users\Joe\1May\session3\readyforfinalconversion\Englishfile.mp4' filelistEnglish.txt: Invalid data found when processing input </code></pre> <p>I believe the issue lies in the text file I'm creating. Please excuse my n00b ignorance, but sometimes new script makers like myself get confused about developer jargon and may take things literally.</p> <p>So when I look at that example text file they gave, am I correct in thinking THIS is what my text file should look like?</p> <pre><code># this is a comment Titlefile.mp4 'C:\Users\Joe\1May\session3\readyforfinalconversion\Titlefile.mp4' Englishfile.mp4 'C:\Users\Joe\1May\session3\readyforfinalconversion\Englishfile.mp4' </code></pre> <p>Again, am I being too literal? are the quotations correct? Are the slashes correct? In the example they provide the slashes in the path are / instead of normal windows \ . I'll provide the entire script in case it helps.</p> <pre><code>@echo off setlocal EnableDelayedExpansion rem Create an array of languages set i=0 for %%a in (French Spanish Basque English) do ( set /A i+=1 set term[!i!]=%%a ) rem Get the title video file name from user set /p titlevideofilename=What is the title video file name? rem create a path variable for the title video file set pathtotitlevideo=%~dp0%titlevideofilename% rem Get the names of the different language video files to append to the title video rem create a path variable for each different language video files for /L %%i in (1,1,4) do ( set /p language[%%i]=what is the name of the !term [%%i]! file you want to append after the title video? set pathtofile[%%i]=%~dp0!language[%%i]! ) rem create data file for ffmpeg based on variable data for /L %%i in (1,1,4) do ( echo # this is a comment&gt;&gt;filelist!term[% %i]!.txt echo file '%pathtotitlevideo%'&gt;&gt;filelist!term[% %i]!.txt echo file '!pathtofile[%%i]!'&gt;&gt;filelist!term[% %i]!.txt ) cls rem join files using ffmpeg concat option for /L %%i in (1,1,4) do ( c:\ffmpeg\ffmpeg\bin\ffmpeg.exe -loglevel error -f concat -i filelist!term[%%i]!.txt -c copy !language[% %i]!.!term[%%i]!.withtitle.mp4 ) endlocal :eof exit </code></pre> <p><strong>EDIT</strong><br> Thanks to @foxidrive making me look at the simplicity of it... it occurred to me that Apparently I wasn't being literal enough. I made these 3 changes and script works perfectly now 1: "file" in there example literally meant the word "file" 2: needed the use of single quotes not double quotes as it shows in there example. 3: Used "\" instead of "/" as they have in there example.</p> <p>So NOW my code to create the text files looks like this:</p> <pre><code>rem create data file for ffmpeg based on variable data for /L %%i in (1,1,4) do ( echo # this is a comment&gt;&gt;filelist!term[% %i]!.txt echo file '%pathtotitlevideo%'&gt;&gt;filelist!term[% %i]!.txt echo file '!pathtofile[%%i]!'&gt;&gt;filelist!term[% %i]!.txt ) </code></pre> <p>So NOW my text file looks like this:</p> <pre><code># this is a comment file 'C:\Users\Joe\1May\session3\readyforfinalconversion\Titlefile.mp4' file 'C:\Users\Joe\1May\session3\readyforfinalconversion\Englishfile.mp4' </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload