Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video FFMpeg-添加背景音乐_Video_Ffmpeg - Fatal编程技术网

Video FFMpeg-添加背景音乐

Video FFMpeg-添加背景音乐,video,ffmpeg,Video,Ffmpeg,以下是我所拥有的: input1.avi-包含声音的视频。 input2.avi-不包含声音的视频。 music.mp3-音频文件 我想将背景音乐(music.mp3文件)添加到视频中 C:\input1.avi -i C:\music.mp3 -shortest -c:v copy -c:a copy C:\output1.avi 然后output1.avi与input1相同-有声音但没有背景音乐的电影(music.mp3) 当我尝试使用其他文件(没有声音的视频)时: 然后output2.a

以下是我所拥有的: input1.avi-包含声音的视频。 input2.avi-不包含声音的视频。 music.mp3-音频文件

我想将背景音乐(music.mp3文件)添加到视频中

C:\input1.avi -i C:\music.mp3 -shortest -c:v copy -c:a copy C:\output1.avi
然后output1.avi与input1相同-有声音但没有背景音乐的电影(music.mp3)

当我尝试使用其他文件(没有声音的视频)时:

然后output2.avi与input2+相同,它有背景音乐

那么为什么input1不包含背景音乐呢??? 如何减少或增加music.mp3文件的音量

谢谢


控制台输出:

C:\motionbee\ffmpeg\bin>ffmpeg -i C:\input.avi
-i C:\music.mp3 -shortest -c:v copy -filter_
complex "[0:a]aformat=fltp:44100:stereo[0a];[1]aformat=fltp:44100:stereo,volume=
1.5[1a];[0a][1a]amix[a]" -map 0:v -map "[a]" -ac 2 C:\output1.avi
ffmpeg version N-78949-g6f5048f Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-l
ibilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopenc
ore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --ena
ble-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable
-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --ena
ble-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx
264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable
-lzma --enable-decklink --enable-zlib
  libavutil      55. 19.100 / 55. 19.100
  libavcodec     57. 27.101 / 57. 27.101
  libavformat    57. 28.100 / 57. 28.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 39.100 /  6. 39.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, avi, from 'C:\input.avi':
  Metadata:
    encoder         : Lavf57.28.100
  Duration: 00:02:05.76, start: 0.000000, bitrate: 450 kb/s
    Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 720
x480 [SAR 1:1 DAR 3:2], 440 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16p, 128 k
b/s
[mp3 @ 00000000005c8020] Skipping 0 bytes of junk at 32370.
Input #1, mp3, from 'C:\music.mp3':
  Metadata:
    title           : Broadcast News Package - News Intro
    artist          : After Effects News Template
  Duration: 00:01:57.89, start: 0.025057, bitrate: 194 kb/s
    Stream #1:0: Audio: mp3, 44100 Hz, stereo, s16p, 192 kb/s
    Metadata:
      encoder         : Lavc56.26
File 'C:\output1.avi' already exists. Overwrite
? [y/N] y
Output #0, avi, to 'C:\output1.avi':
  Metadata:
    ISFT            : Lavf57.28.100
    Stream #0:0: Video: mpeg4 (XVID / 0x44495658), yuv420p, 720x480 [SAR 1:1 DAR
 3:2], q=2-31, 440 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 44100 Hz, stereo
, fltp (default)
    Metadata:
      encoder         : Lavc57.27.101 libmp3lame
Stream mapping:
  Stream #0:1 (mp3) -> aformat
  Stream #1:0 (mp3) -> aformat
  Stream #0:0 -> #0:0 (copy)
  amix -> Stream #0:1 (libmp3lame)
Press [q] to stop, [?] for help
frame= 3118 fps=0.0 q=-1.0 Lsize=    6917kB time=00:02:05.76 bitrate= 450.6kbits
/s speed= 867x
video:6754kB audio:74kB subtitle:0kB other streams:0kB global headers:0kB muxing
 overhead: 1.307944%

当多个流可用且未指定映射时,ffmpeg从输入中选择一个视频和一个音频流

由于您可能需要重新编码音频,因此可以使用

ffmpeg -i C:\input1.avi -i C:\music.mp3 -c:v copy \
       -filter_complex "[0:a]aformat=fltp:44100:stereo,apad[0a];[1]aformat=fltp:44100:stereo,volume=1.5[1a];[0a][1a]amerge[a]" \
       -map 0:v -map "[a]" -ac 2 C:\output1.avi

我试过了,这个命令似乎起作用了

ffmpeg -i audio.mp3 -i input.mp4 -filter_complex "[0:a][1:a]amerge,pan=stereo|c0<c0+c2|c1<c1+c3[out]" -map 1:v -map "[out]" -c:v copy -shortest output.mp4

ffmpeg-i audio.mp3-i input.mp4-filter_complex“[0:a][1:a]amerge,pan=stereo | c0i出现错误:[解析的_amerge_1@0000000000 1901a0]输入1没有通道布局[Parsed_amerge_1@0000000000 1901a0]输入2没有通道布局[AVFilterGraph@0000000000 15dfe0]下面的过滤器不能选择它们的格式:PARSETHEAMEGEGE1考虑在它们的输入或输出附近插入(A)格式过滤器。错误配置复杂的过滤器。I/O错误请将命令的完整控制台输出粘贴在问题。C:\FFMPEG\BI:FFMPEG-I C:\InPo.avi-I C:\ MyIC.MP3-最短-C:V拷贝-过滤器复合物[[ 1 ] ]。体积=1.5[1a];[0][1a]amerge[a]“-map 0:v-map”[a]”-ac 2 C:\output1.avi ffmpeg版本N-78949-g6f5048f版权所有(C)2000-2016 ffmpeg开发者使用gcc 5.3.0(gcc)构建libavutil 55.19.100/55.19.100 libavcodec 57.27.101/57.27.101 libavformat 57.28.100/57.28.100 libavdevice 57.0.101/57.0.101 libavfilter 6.39.100/6.39.100 libswscale 4.0.100/4.0.100 libswresample 2.0.101 libpostproc 54.0.100/54.0.100/54.0.100输入#0,avi,来自'C:\输出.avi”:元数据:编码器:Lavf57.28.100持续时间:00:02:05.76,开始时间:0.000000,比特率:450 kb/s流#0:0:视频:mpeg4(简单配置文件)(XVID/0x44495658),yuv420p,720流#0:0:视频:mpeg4(简单配置文件)(XVID/0x44495658),yuv420p,720 x480[SAR 1:1 DAR 3:2],440kb/s,25fps,25tbr,25tbn,25tbc流#0:1:音频:mp3(U[0][0][0]/0x0055),44100Hz,立体声,s16p,128kb/s[mp3@0000000000 12bc20]在32370处跳过0字节的垃圾。从“C:\motionbee\sound\u tracks\After\u Effects\u News.mp3”输入#1,mp3:元数据:标题:广播新闻包-新闻简介艺术家:After Effects新闻模板持续时间:00:01:57.89,开始时间:0.02507,比特率:194 kb/s
ffmpeg -i audio.mp3 -i input.mp4 -filter_complex "[0:a][1:a]amerge,pan=stereo|c0<c0+c2|c1<c1+c3[out]" -map 1:v -map "[out]" -c:v copy -shortest output.mp4