将黑色视频添加到包含声音的视频

时间:2017-02-03 22:29:59

标签: shell ffmpeg

我正在尝试使用ffmpeg在视频开头插入13秒的黑色视频,如下所示:

ffmpeg -f lavfi -i "color=c=black:s=720x406:r=25:sar=1/1" -i input.mp4 -filter_complex \
"[0:v] trim=end=13,setpts=PTS-STARTPTS [blackstart]; \
[blackstart] [1:v] concat=n=2:v=1:a=0[out]" \
 -map "[out]" -c:a copy output.mp4

然而声音没有得到维护。我做错了什么? -c:如果我在某个地方使用[1:a],副本似乎不起作用?

garrett-retina:~ garrett-macbookretina$ ffmpeg -f lavfi -i "color=c=red:s=720x406:r=25:sar=1/1" -i input.mp4 -filter_complex \
> "[0:v] trim=end=13,setpts=PTS-STARTPTS [blackstart]; \
> [blackstart] [1:v] concat=n=2:v=1:a=0[out]" \
>  -map "[out]" -c:a copy output.mp4
ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
  built with Apple LLVM version 5.0 (clang-500.2.76) (based on LLVM 3.3svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/3.2.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
  libavutil      55. 34.100 / 55. 34.100
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.100 / 57. 56.100
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libavresample   3.  1.  0 /  3.  1.  0
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
Input #0, lavfi, from 'color=c=red:s=720x406:r=25:sar=1/1':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x406 [SAR 1:1 DAR 360:203], 25 tbr, 25 tbn, 25 tbc
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.56.100
  Duration: 33:59:47.32, start: 0.000000, bitrate: 179 kb/s
    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x406 [SAR 1:1 DAR 360:203], 62 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 16000 Hz, stereo, fltp, 114 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
[libx264 @ 0x7fa344048400] using SAR=1/1
[libx264 @ 0x7fa344048400] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x7fa344048400] profile High, level 3.0
[libx264 @ 0x7fa344048400] 264 - core 148 r2748 97eaef2 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - 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=12 lookahead_threads=2 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/garrett-macbookretina/Desktop/Best of Luck With the Wall/exports/test.mp4':
  Metadata:
    encoder         : Lavf57.56.100
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 720x406 [SAR 1:1 DAR 360:203], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
    Metadata:
      encoder         : Lavc57.64.101 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream mapping:
  Stream #0:0 (rawvideo) -> trim
  Stream #1:0 (h264) -> concat:in1:v0
  concat -> Stream #0:0 (libx264)
Press [q] to stop, [?] for help
frame=3060008 fps=432 q=-1.0 Lsize=  957795kB time=34:00:00.20 bitrate=  64.1kbits/s speed=17.3x    
video:921972kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.885564%
[libx264 @ 0x7fa344048400] frame I:16585 Avg QP:13.67  size: 49743
[libx264 @ 0x7fa344048400] frame P:770518 Avg QP:16.48  size:    91
[libx264 @ 0x7fa344048400] frame B:2272905 Avg QP:25.11  size:    22
[libx264 @ 0x7fa344048400] consecutive B-frames:  0.9%  0.1%  0.4% 98.6%
[libx264 @ 0x7fa344048400] mb I  I16..4: 10.2% 39.7% 50.1%
[libx264 @ 0x7fa344048400] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.7%  0.0%  0.0%  0.0%  0.0%    skip:99.1%
[libx264 @ 0x7fa344048400] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.2%  0.0%  0.0%  direct: 0.0%  skip:99.8%  L0:46.9% L1:53.1% BI: 0.1%
[libx264 @ 0x7fa344048400] 8x8 transform intra:39.9% inter:52.0%
[libx264 @ 0x7fa344048400] coded y,uvDC,uvAC intra: 86.1% 77.1% 60.4% inter: 0.0% 0.1% 0.0%
[libx264 @ 0x7fa344048400] i16 v,h,dc,p: 66% 10% 13% 11%
[libx264 @ 0x7fa344048400] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 20% 14%  6%  7%  7%  7%  7% 11%
[libx264 @ 0x7fa344048400] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 19% 11%  7%  9%  8%  8%  7%  9%
[libx264 @ 0x7fa344048400] i8c dc,h,v,p: 59% 19% 17%  5%
[libx264 @ 0x7fa344048400] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7fa344048400] ref P L0: 53.9%  4.0% 16.6% 25.5%  0.0%
[libx264 @ 0x7fa344048400] ref B L0: 27.9% 71.6%  0.5%
[libx264 @ 0x7fa344048400] ref B L1: 97.6%  2.4%
[libx264 @ 0x7fa344048400] kb/s:61.71
garrett-retina:~ garrett-macbookretina$ 

1 个答案:

答案 0 :(得分:2)

您还需要添加无声音频。使用anullsrc的一种方法:

ffmpeg \
-f lavfi -i "color=c=black:s=720x406:r=25:sar=1/1:d=13" \
-f lavfi -t 1 -i anullsrc=cl=stereo:r=16000 \
-i input.mp4 \
-filter_complex \
"[2:v]setpts=PTS-STARTPTS[video]; \
 [0:v][1:a][video][2:a]concat=n=2:v=1:a=1[v][a]" \
 -map "[v]" -map "[a]" output.mp4

无声音频持续时间只需要短于黑色视频持续时间; concat过滤器将自动填充其余部分。

我目前无法测试此示例,但如果它被破坏,请告诉我,我可以稍后解决。