Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Manipulating one video into multi outputs with FFmpeg results in no audio in the last output

Using FFmpeg, I'm trying to do some filtering operations on one input video to scale it (out1), scale and trim it (out2). This is the command I'm using:

ffmpeg -y \
-i "Robotica_1080.mkv" \
-filter_complex "[0:v]split=2[v1][v2]; \
[v1]scale=640:360,setpts=PTS-STARTPTS[vout1]; \
[v2]trim=10:15,scale=640:360,setpts=PTS-STARTPTS[vout2]; \
[0:a]asplit=2[a1][a2]; \
[a1]anull,asetpts=PTS-STARTPTS[aout1]; \
[a2]atrim=10:15,asetpts=PTS-STARTPTS[aout2]; \
[vout1][aout1]concat=n=1:v=1:a=1[out1]; \
[vout2][aout2]concat=n=1:v=1:a=1[out2]" \
-map "[out1]" "1.mp4" \
-map "[out2]" "2.mp4" 

1.mp4 is ok while 2.mp4 lasts 5 seconds as expected but without audio at all (the QuickTime inspector doesn't write the audio codec)

I tried to remove the trim/atrim filters, so the filter_complex parameter looked like this:

-filter_complex "[0:v]split=2[v1][v2]; \
[v1]scale=640:360[vout1]; \
[v2]scale=640:360[vout2]; \
[0:a]asplit=2[a1][a2]; \
[a1]anull[aout1]; \
[a2]anull[aout2]; \
[vout1][aout1]concat=n=1:v=1:a=1[out1]; \
[vout2][aout2]concat=n=1:v=1:a=1[out2]" \

but still no audio on 2.mp4

Can anyone give me a hint?

--EDIT-- This is the output from first ffmpeg command:


Mac-mini:~ Luca$ /Applications/XAMPP/xamppfiles/htdocs/MediaGallery/ffmpeg/ffmpeg -y \
> -i "/Users/Luca/Desktop/_TEMP UPLOAD/Video/Robotica_1080.mkv" \
> -filter_complex "[0:v]split=2[v1][v2]; \
> [v1]scale=640:360,setpts=PTS-STARTPTS[vout1]; \
> [v2]trim=10:15,scale=640:360,setpts=PTS-STARTPTS[vout2]; \
> [0:a]asplit=2[a1][a2]; \
> [a1]anull,asetpts=PTS-STARTPTS[aout1]; \
> [a2]atrim=10:15,asetpts=PTS-STARTPTS[aout2]; \
> [vout1][aout1]concat=n=1:v=1:a=1[out1]; \
> [vout2][aout2]concat=n=1:v=1:a=1[out2]" \
> -map "[out1]" "/Users/Luca/Downloads/1.mp4" \
> -map "[out2]" "/Users/Luca/Downloads/2.mp4" 
ffmpeg version N-72460-gc5a07f1-tessus Copyright (c) 2000-2015 the FFmpeg developers
  built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --as=yasm --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-version3 --disable-ffplay --disable-indev=qtkit --disable-indev=x11grab_xcb
  libavutil      54. 23.101 / 54. 23.101
  libavcodec     56. 40.100 / 56. 40.100
  libavformat    56. 33.101 / 56. 33.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, matroska,webm, from '/Users/Luca/Desktop/_TEMP UPLOAD/Video/Robotica_1080.mkv':
  Metadata:
    encoder         : libDivXMediaFormat 4.0.0.0578
  Duration: 00:00:20.04, start: 0.000000, bitrate: 4282 kb/s
    Stream #0:0(eng): Video: hevc (Main), yuvj420p(pc), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 25 tbc (default)
    Stream #0:1(en): Audio: aac (LC), 44100 Hz, stereo, fltp (default)
[swscaler @ 0x7fb4d181c400] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x7fb4d185be00] deprecated pixel format used, make sure you did set range correctly
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
    Last message repeated 1 times
[libx264 @ 0x7fb4d183f400] using SAR=1/1
[libx264 @ 0x7fb4d183f400] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
[libx264 @ 0x7fb4d183f400] profile High, level 3.0
[libx264 @ 0x7fb4d183f400] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - 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=3 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
[libx264 @ 0x7fb4d184e400] using SAR=1/1
[libx264 @ 0x7fb4d184e400] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
[libx264 @ 0x7fb4d184e400] profile High, level 3.0
[libx264 @ 0x7fb4d184e400] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - 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=3 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 '/Users/Luca/Downloads/1.mp4':
  Metadata:
    encoder         : Lavf56.33.101
    Stream #0:0: Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, s16, 128 kb/s (default)
    Metadata:
      encoder         : Lavc56.40.100 libvo_aacenc
    Stream #0:1: Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, s16, 128 kb/s
    Metadata:
      encoder         : Lavc56.40.100 libvo_aacenc
    Stream #0:2: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj420p(pc), 640x360 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
    Metadata:
      encoder         : Lavc56.40.100 libx264
Output #1, mp4, to '/Users/Luca/Downloads/2.mp4':
  Metadata:
    encoder         : Lavf56.33.101
    Stream #1:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj420p(pc), 640x360 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
    Metadata:
      encoder         : Lavc56.40.100 libx264
Stream mapping:
  Stream #0:0 (hevc) -> split
  Stream #0:1 (aac) -> asplit
  concat:out:a0 -> Stream #0:0 (libvo_aacenc)
  concat:out:a0 -> Stream #0:1 (libvo_aacenc)
  concat:out:v0 -> Stream #0:2 (libx264)
  concat:out:v0 -> Stream #1:0 (libx264)
Press [q] to stop, [?] for help
frame=  501 fps= 26 q=-1.0 Lq=-1.0 size=    1512kB time=00:00:19.97 bitrate= 620.1kbits/s    
video:1385kB audio:392kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0x7fb4d183f400] frame I:3     Avg QP:19.30  size:  3879
[libx264 @ 0x7fb4d183f400] frame P:321   Avg QP:24.53  size:  3024
[libx264 @ 0x7fb4d183f400] frame B:177   Avg QP:26.20  size:   825
[libx264 @ 0x7fb4d183f400] consecutive B-frames: 40.7% 34.7%  5.4% 19.2%
[libx264 @ 0x7fb4d183f400] mb I  I16..4: 24.8% 65.9%  9.3%
[libx264 @ 0x7fb4d183f400] mb P  I16..4:  7.5% 10.5%  2.5%  P16..4: 22.9%  7.4%  2.7%  0.0%  0.0%    skip:46.5%
[libx264 @ 0x7fb4d183f400] mb B  I16..4:  0.4%  0.6%  0.3%  B16..8: 17.2%  2.9%  0.7%  direct: 0.9%  skip:77.1%  L0:37.2% L1:51.8% BI:11.0%
[libx264 @ 0x7fb4d183f400] 8x8 transform intra:51.6% inter:69.2%
[libx264 @ 0x7fb4d183f400] coded y,uvDC,uvAC intra: 40.2% 24.2% 1.1% inter: 8.5% 4.0% 0.0%
[libx264 @ 0x7fb4d183f400] i16 v,h,dc,p:  9% 65%  1% 25%
[libx264 @ 0x7fb4d183f400] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 29% 16%  4%  6%  6%  7%  6%  6%
[libx264 @ 0x7fb4d183f400] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 34% 12%  3%  7%  6%  7%  4%  4%
[libx264 @ 0x7fb4d183f400] i8c dc,h,v,p: 63% 25% 11%  1%
[libx264 @ 0x7fb4d183f400] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7fb4d183f400] ref P L0: 69.3% 11.5% 12.5%  6.7%
[libx264 @ 0x7fb4d183f400] ref B L0: 82.4% 16.7%  0.8%
[libx264 @ 0x7fb4d183f400] ref B L1: 98.6%  1.4%
[libx264 @ 0x7fb4d183f400] kb/s:450.44
[libx264 @ 0x7fb4d184e400] frame I:1     Avg QP:22.23  size:  6699
[libx264 @ 0x7fb4d184e400] frame P:78    Avg QP:24.94  size:  2998
[libx264 @ 0x7fb4d184e400] frame B:46    Avg QP:27.93  size:  1036
[libx264 @ 0x7fb4d184e400] consecutive B-frames: 32.0% 56.0%  2.4%  9.6%
[libx264 @ 0x7fb4d184e400] mb I  I16..4: 53.5% 26.6% 19.9%
[libx264 @ 0x7fb4d184e400] mb P  I16..4:  9.8%  7.6%  3.1%  P16..4: 25.0%  8.0%  2.8%  0.0%  0.0%    skip:43.8%
[libx264 @ 0x7fb4d184e400] mb B  I16..4:  0.8%  0.5%  0.4%  B16..8: 22.4%  3.5%  0.8%  direct: 1.1%  skip:70.4%  L0:41.1% L1:48.0% BI:10.9%
[libx264 @ 0x7fb4d184e400] 8x8 transform intra:36.1% inter:66.1%
[libx264 @ 0x7fb4d184e400] coded y,uvDC,uvAC intra: 33.5% 24.6% 1.8% inter: 8.5% 3.8% 0.0%
[libx264 @ 0x7fb4d184e400] i16 v,h,dc,p:  4% 82%  1% 13%
[libx264 @ 0x7fb4d184e400] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 40% 18%  3%  4%  4%  7%  3%  5%
[libx264 @ 0x7fb4d184e400] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 40% 13%  3%  5%  5%  6%  3%  4%
[libx264 @ 0x7fb4d184e400] i8c dc,h,v,p: 54% 36%  8%  2%
[libx264 @ 0x7fb4d184e400] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7fb4d184e400] ref P L0: 60.6% 10.5% 17.5% 11.4%
[libx264 @ 0x7fb4d184e400] ref B L0: 77.6% 22.0%  0.4%
[libx264 @ 0x7fb4d184e400] ref B L1: 99.1%  0.9%
[libx264 @ 0x7fb4d184e400] kb/s:461.15
like image 988
LucaM Avatar asked Jan 21 '26 15:01

LucaM


1 Answers

In concat filter, "n" defines the number of segments. so n must be "2" in your filter, like this :

ffmpeg -y \
-i "Robotica_1080.mkv" \
-filter_complex "[0:v]split=2[v1][v2]; \
[v1]scale=640:360,setpts=PTS-STARTPTS[vout1]; \
[v2]trim=10:15,scale=640:360,setpts=PTS-STARTPTS[vout2]; \
[0:a]asplit=2[a1][a2]; \
[a1]anull,asetpts=PTS-STARTPTS[aout1]; \
[a2]atrim=10:15,asetpts=PTS-STARTPTS[aout2]; \
[vout1][aout1]concat=n=2:v=1:a=1[vout1][aout1]; \
[vout2][aout2]concat=n=2:v=1:a=1[vout2][aout2]" \
-map [vout1] -map [aout1] "1.mp4" \
-map [vout2] -map [aout2] "2.mp4" 

or you can just map the audio in following command :

ffmpeg -y \
-i "Robotica_1080.mkv" \
-filter_complex "[0:v]split=2[v1][v2]; \
[v1]scale=640:360,setpts=PTS-STARTPTS[vout1]; \
[v2]trim=10:15,scale=640:360,setpts=PTS-STARTPTS[vout2]; \
[0:a]asplit=2[a1][a2]; \
[a1]anull,asetpts=PTS-STARTPTS[aout1]; \
[a2]atrim=10:15,asetpts=PTS-STARTPTS[aout2]"
-map [vout1] -map [aout1] "1.mp4" \
-map [vout2] -map [aout2] "2.mp4" 
like image 152
Gigone Lee Avatar answered Jan 25 '26 22:01

Gigone Lee



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!