ffmpeg - concatenating two MP4 files results in bad output file
Do not use the concat demuxer or concat protocol when the source files may have different codecs or other differences. Use the concat filter. That will re-encode all, but will produce stable results.
ffmpeg -i title -i main -y -filter_complex '[0:0] setsar=1/1[sarfix];[sarfix] [1:0] concat=n=2:v=1:a=0 [v]' -map '[v]' -pass 1 -strict -2 -an -vcodec libx264 -pix_fmt yuv420p -aspect 16:9 -threads 4 -b:v 2400k -flags +loop -cmp chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 1 -trellis 0 -refs 1 -bf 3 -b_strategy 2 -coder 1 -me_range 16 -g 250 -keyint_min 75 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 output.mp4 ffmpeg -i title -i main -y -filter_complex '[0:0] setsar=1/1[sarfix];[sarfix] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1[v] [a]' -map '[v]' -map '[a]' -strict -2 -acodec aac -b:a 128k -pass 2 -vcodec libx264 -pix_fmt yuv420p -aspect 16:9 -threads 4 -b:v 2400k -flags +loop -cmp chroma -partitions +parti4x4+partp8x8+partb8x8 -mixed-refs 1 -subq 6 -trellis 1 -refs 5 -bf 3 -b_strategy 2 -coder 1 -me_range 16 -g 250 -keyint_min 75 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 output.mp4
This shows a two pass solution. In pass 1 audio is ignored. It does not matter how your two sections input are produced.
Related videos on Youtube
DevDewboy
Updated on September 18, 2022Comments
-
DevDewboy almost 2 years
I generated two MP4 files - a five-second intro file, which is created by the script below, and the main video (about one minute long) is created by screen-cast-omatic, both in MP4 format. When I attempt to concatenate them using the
ffmpeg -f concat -i mylist.txt -c copy output
method, it produces an output file where the intro file plays fine. Then the main video plays; the audio is fine but the video is messed up where it displays garbled video on top.Using the
ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg
method, the output is a video which is not complete. I did not include any script output on this.Can some check this out and offer a recommendation?
The follow is the script and out put for the first method of concat:
# intro_vid.cfg #!/bin/bash INPUTFILE="intro_vid.mp4" LOGO=intro".png" LOGOLENGTH="5" SPEAKER="Jason" TITLE="Basic SSH Video" DATE="October 28, 2013" SCENESTART="00:00:01" SCENEDURATION="00:00:05" OUTPUTFILE="intro_vid_final"
mylist.txt:
# Comment file './intro_vid_final-intro.mp4' file './ssh_main.mp4'
VideoEditIntro.sh:
#!/bin/bash PARAMFILE=${1} . ${PARAMFILE} extractVideo () { # Split the portion of the video that we want to work on directly from the source file # converting the video to frame files one PNG file per frame and # splitting the audio to to an MP3 file rm -fr "${OUTPUTFILE}-frames" mkdir -p "${OUTPUTFILE}-frames" ./ffmpeg -threads 4 \ -i ${INPUTFILE} -ss ${SCENESTART} -t ${SCENEDURATION} \ -f image2 -y "${OUTPUTFILE}-frames"/frame%d.png \ -c:a copy -y "${OUTPUTFILE}.m4a" } createIntro () { # Create the introduction image by merging the logo file with the titles for the video convert ${LOGO} -gravity Center -font DejaVu-Sans-Book \ -pointsize 20 -fill gray -draw "text 1,21 'University'" \ -fill white -draw "text 0,20 'University'" \ -pointsize 50 -fill gray -draw "text 2,72 '${SPEAKER}'" \ -fill white -draw "text 0,70 '${SPEAKER}'" \ -pointsize 30 -fill gray -draw "text 1,131 '${TITLE}'" \ -fill white -draw "text 0,130 '${TITLE}'" \ -pointsize 20 -fill gray -draw "text 1,171 '${DATE}'" \ -fill white -draw "text 0,170 '${DATE}'" \ "${OUTPUTFILE}-intro.png" # Create still video from the introduction image and silence ./ffmpeg -ar 48000 -t ${LOGOLENGTH} -f s16le -ac 2 \ -channel_layout stereo -c:a pcm_s16le \ -i /dev/zero -ab 64K -c:a libvo_aacenc -y silence.m4a ./ffmpeg -loop 1 -i "${OUTPUTFILE}-intro.png" -q:v 1 \ -r 29.97 -t ${LOGOLENGTH} -y -f MP4 -pix_fmt yuv420p "${OUTPUTFILE}-logo1.mp4" ./ffmpeg -i "${OUTPUTFILE}-logo1.mp4" -i "silence.m4a" \ -c:v copy -c:a copy -map 0:0 -map 1:0 -threads 4 \ -y -f MP4 "${OUTPUTFILE}-intro.mp4" } reasembleVideo () { # Merge the modified frames onto the original frames # Reassembles the modified frames and the audio into an output video # ./ffmpeg -threads 4 \ # -i concat:"${OUTPUTFILE}-intro.mp4"\|"ssh_main.mp4" \ # -r 29.97 -y "${OUTPUTFILE}-final_ssh.mp4" ./ffmpeg -f concat -i mylist.txt -codec copy "${OUTPUTFILE}-final_ssh.mp4" } # These functions do not depend on each other. They can be executed in parallel extractVideo & echo "CREATE INTRO ROUTINE" createIntro & wait reasembleVideo # Done! echo "Done!"
The following is the processing output:
iavideo@colfax:~$ cd video/wip2/ iavideo@colfax:~/video/wip2$ cd video/wip2/./VideoEditIntro.sh intro_vid.cfg CREATE INTRO ROUTINE ffmpeg version N-57401-ga443b97 Copyright (c) 2000-2013 the FFmpeg developers built on Oct 25 2013 05:34:36 with gcc 4.6 (Debian 4.6.3-1) configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx libavutil 52. 47.101 / 52. 47.101 libavcodec 55. 38.101 / 55. 38.101 libavformat 55. 19.104 / 55. 19.104 libavdevice 55. 5.100 / 55. 5.100 libavfilter 3. 89.100 / 3. 89.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'intro_vid.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 creation_time : 1970-01-01 00:00:00 Duration: 00:00:07.00, start: 0.000000, bitrate: 116 kb/s Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1720x752, 46 kb/s, 10 fps, 10 tbr, 10 tbn, 20 tbc (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 75 kb/s (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : SoundHandler [libx264 @ 0x3a6c140] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 [libx264 @ 0x3a6c140] profile High, level 3.2 [libx264 @ 0x3a6c140] 264 - core 129 r2230 1cffe9f - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=10 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, image2, to 'intro_vid_final-frames/frame%d.png': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf55.19.104 Stream #0:0(und): Video: png, rgb24, 1720x752, q=2-31, 200 kb/s, 90k tbn, 10 tbc (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Output #1, ipod, to 'intro_vid_final.m4a': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf55.19.104 Stream #1:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1720x752, q=-1--1, 10240 tbn, 10 tbc (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #1:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, 75 kb/s (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : SoundHandler Stream mapping: Stream #0:0 -> #0:0 (h264 -> png) Stream #0:0 -> #1:0 (h264 -> libx264) Stream #0:1 -> #1:1 (copy) Press [q] to stop, [?] for help ffmpeg version N-57401-ga443b97 Copyright (c) 2000-2013 the FFmpeg developers built on Oct 25 2013 05:34:36 with gcc 4.6 (Debian 4.6.3-1) configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx libavutil 52. 47.101 / 52. 47.101 libavcodec 55. 38.101 / 55. 38.101 libavformat 55. 19.104 / 55. 19.104 libavdevice 55. 5.100 / 55. 5.100 libavfilter 3. 89.100 / 3. 89.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100 Input #0, s16le, from '/dev/zero': Duration: N/A, bitrate: 1536 kb/s Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s Output #0, ipod, to 'silence.m4a': Metadata: encoder : Lavf55.19.104 Stream #0:0: Audio: aac (libvo_aacenc) (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 64 kb/s Stream mapping: Stream #0:0 -> #0:0 (pcm_s16le -> libvo_aacenc) Press [q] to stop, [?] for help size= 41kB time=00:00:05.00 bitrate= 67.1kbits/s video:0kB audio:39kB subtitle:0 global headers:0kB muxing overhead 4.190769% ffmpeg version N-57401-ga443b97 Copyright (c) 2000-2013 the FFmpeg developers built on Oct 25 2013 05:34:36 with gcc 4.6 (Debian 4.6.3-1) configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx libavutil 52. 47.101 / 52. 47.101 libavcodec 55. 38.101 / 55. 38.101 libavformat 55. 19.104 / 55. 19.104 libavdevice 55. 5.100 / 55. 5.100 libavfilter 3. 89.100 / 3. 89.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100 Input #0, image2, from 'intro_vid_final-intro.png': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0:0: Video: png, rgba, 1720x752, 25 fps, 25 tbr, 25 tbn, 25 tbc [libx264 @ 0x32d6860] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 [libx264 @ 0x32d6860] profile High, level 3.2 [libx264 @ 0x32d6860] 264 - core 129 r2230 1cffe9f - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'intro_vid_final-logo1.mp4': Metadata: encoder : Lavf55.19.104 Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1720x752, q=-1--1, 11988 tbn, 29.97 tbc Stream mapping: Stream #0:0 -> #0:0 (png -> libx264) Press [q] to stop, [?] for help frame= 32 fps=0.0 q=0.0 q=0.0 size=N/A time=00:00:04.43 bitrate=N/A frame= 41 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A dup=7 drop=0 frame= 50 fps= 49 q=0.0 q=25.0 size=N/A time=00:00:06.10 bitrate=N/A frame= 73 fps= 72 q=29.0 size= 8kB time=00:00:00.70 bitrate= 97.6kbits/s dup=12 drop=0 frame= 50 fps= 33 q=0.0 Lq=-1.0 size=N/A time=00:00:06.80 bitrate=N/A video:608kB audio:57kB subtitle:0 global headers:0kB muxing overhead -100.003232% [libx264 @ 0x3a6c140] frame I:1 Avg QP: 6.68 size: 2396 [libx264 @ 0x3a6c140] frame P:18 Avg QP: 7.26 size: 583 [libx264 @ 0x3a6c140] frame B:51 Avg QP: 9.71 size: 74 [libx264 @ 0x3a6c140] consecutive B-frames: 2.9% 0.0% 0.0% 97.1% [libx264 @ 0x3a6c140] mb I I16..4: 99.4% 0.0% 0.6% [libx264 @ 0x3a6c140] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 0.3% 0.1% 0.1% 0.0% 0.0% skip:99.6% [libx264 @ 0x3a6c140] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.1% 0.0% 0.0% direct: 0.0% skip:99.9% L0:53.1% L1:46.8% BI: 0.1% [libx264 @ 0x3a6c140] 8x8 transform intra:0.0% inter:10.8% [libx264 @ 0x3a6c140] coded y,uvDC,uvAC intra: 0.4% 0.0% 0.0% inter: 0.1% 0.0% 0.0% [libx264 @ 0x3a6c140] i16 v,h,dc,p: 98% 0% 2% 0% [libx264 @ 0x3a6c140] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 28% 26% 2% 5% 4% 10% 3% 6% [libx264 @ 0x3a6c140] i8c dc,h,v,p: 100% 0% 0% 0% [libx264 @ 0x3a6c140] Weighted P-Frames: Y:44.4% UV:0.0% [libx264 @ 0x3a6c140] ref P L0: 72.8% 11.4% 15.1% 0.2% 0.5% [libx264 @ 0x3a6c140] ref B L0: 86.6% 13.4% [libx264 @ 0x3a6c140] kb/s:19.03 frame= 124 fps= 82 q=29.0 size= 11kB time=00:00:02.40 bitrate= 37.0kbits/s dup=20 drop=0 frame= 150 fps= 77 q=-1.0 Lsize= 17kB time=00:00:04.93 bitrate= 28.3kbits/s dup=25 drop=0 video:14kB audio:0kB subtitle:0 global headers:0kB muxing overhead 17.449439% [libx264 @ 0x32d6860] frame I:1 Avg QP:15.18 size: 6574 [libx264 @ 0x32d6860] frame P:38 Avg QP:10.44 size: 59 [libx264 @ 0x32d6860] frame B:111 Avg QP:13.67 size: 48 [libx264 @ 0x32d6860] consecutive B-frames: 1.3% 0.0% 0.0% 98.7% [libx264 @ 0x32d6860] mb I I16..4: 97.4% 0.0% 2.6% [libx264 @ 0x32d6860] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 0.0% 0.0% 0.0% 0.0% 0.0% skip:100.0% [libx264 @ 0x32d6860] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.0% 0.0% 0.0% direct: 0.0% skip:100.0% L0:69.8% L1:30.2% BI: 0.0% [libx264 @ 0x32d6860] 8x8 transform intra:0.0% inter:12.5% [libx264 @ 0x32d6860] coded y,uvDC,uvAC intra: 1.7% 0.0% 0.0% inter: 0.0% 0.0% 0.0% [libx264 @ 0x32d6860] i16 v,h,dc,p: 98% 0% 2% 0% [libx264 @ 0x32d6860] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 47% 20% 14% 2% 2% 3% 4% 3% 4% [libx264 @ 0x32d6860] i8c dc,h,v,p: 100% 0% 0% 0% [libx264 @ 0x32d6860] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x32d6860] ref B L0: 2.7% 97.3% [libx264 @ 0x32d6860] kb/s:22.63 ffmpeg version N-57401-ga443b97 Copyright (c) 2000-2013 the FFmpeg developers built on Oct 25 2013 05:34:36 with gcc 4.6 (Debian 4.6.3-1) configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx libavutil 52. 47.101 / 52. 47.101 libavcodec 55. 38.101 / 55. 38.101 libavformat 55. 19.104 / 55. 19.104 libavdevice 55. 5.100 / 55. 5.100 libavfilter 3. 89.100 / 3. 89.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'intro_vid_final-logo1.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf55.19.104 Duration: 00:00:05.01, start: 0.000000, bitrate: 27 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1720x752, 23 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 59.94 tbc (default) Metadata: handler_name : VideoHandler Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'silence.m4a': Metadata: major_brand : M4A minor_version : 512 compatible_brands: isomiso2 encoder : Lavf55.19.104 Duration: 00:00:05.03, start: 0.033333, bitrate: 66 kb/s Stream #1:0(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 64 kb/s (default) Metadata: handler_name : SoundHandler Output #0, mp4, to 'intro_vid_final-intro.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf55.19.104 Stream #0:0(und): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1720x752, q=2-31, 23 kb/s, 29.97 fps, 11988 tbn, 11988 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, 64 kb/s (default) Metadata: handler_name : SoundHandler Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #1:0 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 150 fps=0.0 q=-1.0 Lsize= 60kB time=00:00:05.03 bitrate= 98.4kbits/s video:14kB audio:39kB subtitle:0 global headers:0kB muxing overhead 12.325164% ffmpeg version N-57401-ga443b97 Copyright (c) 2000-2013 the FFmpeg developers built on Oct 25 2013 05:34:36 with gcc 4.6 (Debian 4.6.3-1) configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx libavutil 52. 47.101 / 52. 47.101 libavcodec 55. 38.101 / 55. 38.101 libavformat 55. 19.104 / 55. 19.104 libavdevice 55. 5.100 / 55. 5.100 libavfilter 3. 89.100 / 3. 89.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100 [concat @ 0x2497f80] Estimating duration from bitrate, this may be inaccurate Input #0, concat, from 'mylist.txt': Duration: 00:00:00.01, start: 0.000000, bitrate: 86 kb/s Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1720x752, 23 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 59.94 tbc Stream #0:1: Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 63 kb/s Output #0, mp4, to 'intro_vid_final-final_ssh.mp4': Metadata: encoder : Lavf55.19.104 Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1720x752, q=2-31, 23 kb/s, 29.97 fps, 11988 tbn, 11988 tbc Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, 63 kb/s Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help [mp4 @ 0x24a7a00] Non-monotonous DTS in output stream 0:0; previous: 58800, current: 51; changing to 58801. This may result in incorrect timestamps in the output file. [mp4 @ 0x24a7a00] Non-monotonous DTS in output stream 0:1; previous: 240640, current: 223455; changing to 240641. This may result in incorrect timestamps in the output file. [mp4 @ 0x24a7a00] Non-monotonous DTS in output stream 0:1; previous: 240641, current: 224479; changing to 240642. This may result in incorrect timestamps in the output file. [mp4 @ 0x24a7a00] Non-monotonous DTS in output stream 0:1; previous: 240642, current: 225503; changing to 240643. This may result in incorrect timestamps in the output file. [mp4 @ 0x24a7a00] Non-monotonous DTS in output stream 0:1; previous: 240643, current: 226527; changing to 240644. This may result in incorrect timestamps in the output file. ... about 400 similar line removed [mp4 @ 0x24a7a00] Non-monotonous DTS in output stream 0:0; previous: 59305, current: 556; changing to 59306. This may result in incorrect timestamps in the output file. [mp4 @ 0x24a7a00] Non-monotonous DTS in output stream 0:0; previous: 59306, current: 557; changing to 59307. This may result in incorrect timestamps in the output file. [mp4 @ 0x24a7a00] Non-monotonous DTS in output stream 0:0; previous: 59307, current: 558; changing to 59308. This may result in incorrect timestamps in the output file. [mp4 @ 0x24a7a00] Non-monotonous DTS in output stream 0:0; previous: 59308, current: 559; changing to 59309. This may result in incorrect timestamps in the output file. [mp4 @ 0x24a7a00] Non-monotonous DTS in output stream 0:0; previous: 59309, current: 560; changing to 59310. This may result in incorrect timestamps in the output file. frame= 660 fps=0.0 q=-1.0 Lsize= 2287kB time=00:00:50.99 bitrate= 367.4kbits/s video:1763kB audio:507kB subtitle:0 global headers:0kB muxing overhead 0.759429% Done! iavideo@colfax:~/video/wip2$
I tried using
memcoder
to concatenate the two videos and I get a problem there. I suspect it has to do with the codec or fps/bit rates etc, so I tweaked the script to 10 fps on both videos and here ismemcoders
output:iavideo@colfax:~/video/wip2$ mencoder -oac pcm -ovc copy -o intro_vid_final_ssh_2.mp4 intro_vid_final-intro.mp4 ssh_main.mp4 MEncoder svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlayer Team WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help. success: format: 0 data: 0x0 - 0xd26c libavformat version 53.21.1 (external) Mismatching header version 53.19.0 libavformat file format detected. [lavf] stream 0: video (h264), -vid 0 [lavf] stream 1: audio (aac), -aid 0, -alang und VIDEO: [H264] 1720x752 24bpp 10.000 fps 17.7 kbps ( 2.2 kbyte/s) [V] filefmt:44 fourcc:0x34363248 size:1720x752 fps:10.000 ftime:=0.1000 ========================================================================== Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders libavcodec version 53.35.0 (external) Mismatching header version 53.32.2 AUDIO: 44100 Hz, 1 ch, s16le, 63.3 kbit/8.97% (ratio: 7914->88200) Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio)) ========================================================================== videocodec: framecopy (1720x752 24bpp fourcc=34363248) Writing header... ODML: Aspect information not (yet?) available or unspecified, not writing vprp header. Writing header... ODML: Aspect information not (yet?) available or unspecified, not writing vprp header. Pos: 4.9s 50f (100%) 0.00fps Trem: 0min 0mb A-V:0.063 [18:705] success: format: 0 data: 0x0 - 0x22f78d libavformat file format detected. [lavf] stream 0: video (h264), -vid 0 [lavf] stream 1: audio (aac), -aid 0, -alang und VIDEO: [H264] 1720x752 24bpp 10.000 fps 280.8 kbps (34.3 kbyte/s) [V] filefmt:44 fourcc:0x34363248 size:1720x752 fps:10.000 ftime:=0.1000 ========================================================================== Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders AUDIO: 44100 Hz, 1 ch, s16le, 75.9 kbit/10.76% (ratio: 9493->88200) Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio)) ========================================================================== videocodec: framecopy (1720x752 24bpp fourcc=34363248) videocodec: framecopy (1720x752 24bpp fourcc=34363248) All video files must have identical fps, resolution, and codec for -ovc copy. Exiting... iavideo@colfax:~/video/wip2$
Using MP4Box I get the error that it can't concatenate the files because the AVCs are different. Here is the output:
iavideo@colfax:~/video/wip2$ MP4Box -cat intro_vid_final-intro.mp4 -cat ssh_main.mp4 intro_vid_final_ssh_3.mp4 Appending file intro_vid_final-intro.mp4 Cannot concatenate files: Different AVC Profile Indication between source (100) and destination (66) Appending file ssh_main.mp4 Saving intro_vid_final_ssh_3.mp4: 0.500 secs Interleaving iavideo@colfax:~/video/wip2$
-
speedynomads over 8 yearsWhat is the benefit of doing two passes. Also are all the additional parameters required? Which ones will contribute to speeding up the re-encoding. Currently a 15 sec clip takes a minute to encode which is too long in context of my application. Thanks