我有 3 个连续的 FFmpeg 命令,它们将自定义音频的音量、自定义视频的音量以及amerge音频和视频到最终输出。
第一个命令,编辑 mp3 文件的音量级别
ffmpeg -i music.mp3 -vol 100 music2.mp3
Run Code Online (Sandbox Code Playgroud)
第二个命令,编辑 mp4 文件的音量级别
ffmpeg -i video.mp4 -vol 200 video2.mp4
Run Code Online (Sandbox Code Playgroud)
第三个命令,合并music2.mp3和video2.mp4
ffmpeg -i music2.mp3 -i ruby.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 -c:a libfdk_aac -shortest video2.mp4
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以将流程简化和分解为一个流程/命令?
我试过这个,但没有用:
ffmpeg -i music.mp3 -vol 100 -i video.mp4 -vol 200 -filter_complex \
"[0:a][1:a]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]" \
-map 1:v -map "[out]" -c:v copy -c:a libfdk_aac -shortest output.mp4
Run Code Online (Sandbox Code Playgroud)
错误日志:
ffmpeg version N-60332-ga0d5204 Copyright (c) 2000-2014 …Run Code Online (Sandbox Code Playgroud) 它正在合并,但我不想删除视频的原始音频。我想在背景中叠加音频。
有没有办法实现这种行为?我正在使用此命令将音频合并到视频中:
$ ffmpeg -i adele.mp3 -i Ruby\ on\ Rails\ 101-\ What\ is\ Ruby\ on\ Rails_.mp4 -c:v libx264 -c copy -aspect 16:9 -r 30 test.mp4
ffmpeg version N-60332-ga0d5204 Copyright (c) 2000-2014 the FFmpeg developers
built on Feb 4 2014 21:31:51 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
configuration: --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid
libavutil 52. 63.100 / 52. 63.100
libavcodec 55. 49.101 / 55. 49.101
libavformat 55. 29.101 / …Run Code Online (Sandbox Code Playgroud)