FFMpeg - 添加背景音乐 [英] FFMpeg - add background music

查看:2960
本文介绍了FFMpeg - 添加背景音乐的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里是我有的:
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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆