FFMpeg - 添加背景音乐 [英] FFMpeg - add background music
问题描述
这里是我有的:
input1.avi - 包含声音的视频。
input2.avi - 不包含声音的视频。
music.mp3 - 音频文件。
here is what i have: input1.avi - video that contain sounds. input2.avi - video that doesn't contain sounds. music.mp3 - audio file.
我想为视频添加背景音乐(music.mp3文件)。
i want to add background music(music.mp3 file) to the video.
C:\input1.avi -i C:\music.mp3 -shortest -c:v copy -c:a copy C:\output1.avi
然后输出1.avi与输入1 - 电影相同但没有背景音乐.mp3)
then output1.avi is the same as input1 - movie with sounds but without the background music (music.mp3)
当我尝试使用其他文件(没有声音的视频):
when i try to use the other file (video without sounds):
C:\input2.avi -i C:\music.mp3 -shortest -c:v copy -c:a copy C:\output2.avi
然后output2.avi与input2 +相同,它有背景音乐。
then output2.avi is the same as input2 + it have the background music.
,如何减少或增加music.mp3文件的音量?
so why input1 does not contain the background music??? and how can i decrease or increase the volume of music.mp3 file?
谢谢。
控制台输出:
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选择一个视频和一个音频流
When multiple streams are available, and no map is specified, ffmpeg picks one video and one audio stream from among the inputs.
由于您可能需要重新编码音频,您可以使用
Since you will likely need to re-encode audio, you can use
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 - 添加背景音乐的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!