Audio 使用amix过滤器时FFMPEG持续时间错误
我正在尝试将背景音乐添加到带有现有音轨的视频中。我选择了amix滤波器,因为其他滤波器似乎会导致音轨延迟。到目前为止,一切正常,但输出视频在11:34分被切断。比输入视频短3秒。我已经尝试将输入视频的长度增加5秒,这仍然会导致11:34分钟的相同输出长度。下面是我正在使用的确切命令:Audio 使用amix过滤器时FFMPEG持续时间错误,audio,video,ffmpeg,Audio,Video,Ffmpeg,我正在尝试将背景音乐添加到带有现有音轨的视频中。我选择了amix滤波器,因为其他滤波器似乎会导致音轨延迟。到目前为止,一切正常,但输出视频在11:34分被切断。比输入视频短3秒。我已经尝试将输入视频的长度增加5秒,这仍然会导致11:34分钟的相同输出长度。下面是我正在使用的确切命令: ffmpeg -i video.mp4 -i bg_music.wav -filter_complex "[0:a]volume=1.5[a0];[1:a]volume=0.2[a1];[a0][a1]amix=d
ffmpeg -i video.mp4 -i bg_music.wav -filter_complex "[0:a]volume=1.5[a0];[1:a]volume=0.2[a1];[a0][a1]amix=duration=shortest[a]" -map 0:v -map [a] -c:v copy -c:a aac -ar 22050 out.mp4
这就是我得到的结果。在此通话中,视频的长度为11:42分钟,音频的长度为36:59分钟。我正在运行macOS Catalina 10.15.3:
built with Apple clang version 11.0.0 (clang-1100.0.33.17)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.2_2 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.29.100
Duration: 00:11:42.14, start: 0.000000, bitrate: 9182 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 9196 kb/s, 4.89 fps, 2.92 tbr, 15360 tbn, 120 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, stereo, fltp, 100 kb/s (default)
Metadata:
handler_name : SoundHandler
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, wav, from 'bg_music.wav':
Metadata:
encoder : Adobe Audition 13.0 (Macintosh)
date : 2020-02-28
creation_time : 15:49:40
time_reference : 0
Duration: 00:36:58.57, bitrate: 2822 kb/s
Stream #1:0: Audio: pcm_f32le ([3][0][0][0] / 0x0003), 44100 Hz, stereo, flt, 2822 kb/s
Stream mapping:
Stream #0:1 (aac) -> volume
Stream #1:0 (pcm_f32le) -> volume
Stream #0:0 -> #0:0 (copy)
amix -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
Output #0, mp4, to 'out.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.29.100
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, q=2-31, 9196 kb/s, 4.89 fps, 2.92 tbr, 15360 tbn, 15360 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
encoder : Lavc58.54.100 aac
frame= 3392 fps=510 q=-1.0 Lsize= 789403kB time=00:11:33.46 bitrate=9325.3kbits/s speed= 104x
video:778257kB audio:11032kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.014279%
[aac @ 0x7fe32d00e800] Qavg: 333.046```
视频文件是如何生成的?视频文件也是使用ffmpeg生成的。首先,将.png和.wav(mono)组合成一个mp4文件(立体声)使用以下命令:
ffmpeg-i pic.png-i audio.wav-r 60-pix_fmt yuv420p-vf scale=1920:1080-vb 50M-c:a aac-c:v libx264-ac 2-ar 22050 out.mp4
然后使用concat
和-c copy
@Gyan组合这些mp4文件。我尝试了一些其他方法,主要是修补输入文件,如更改编解码器等。不幸的是,我不知道该做什么了,这对我来说是一个相当大的障碍。我很乐意提供一些附加信息/控制台输出或一些示例片段。或者是否有更适合于将音乐添加到具有现有音频的视频的过滤器?非常感谢。镜头样本很好。@Gyan给你。如果你还需要别的东西,请告诉我。folderstructure一开始可能有点吓人,只需看一眼自述文件即可。-来自德国的问候视频文件是如何生成的?视频文件也是使用ffmpeg生成的。首先,将.png和.wav(mono)组合成一个mp4文件(立体声)使用以下命令:ffmpeg-i pic.png-i audio.wav-r 60-pix_fmt yuv420p-vf scale=1920:1080-vb 50M-c:a aac-c:v libx264-ac 2-ar 22050 out.mp4
然后使用concat
和-c copy
@Gyan组合这些mp4文件。我尝试了一些其他方法,主要是修补输入文件,如更改编解码器等。不幸的是,我不知道该做什么了,这对我来说是一个相当大的障碍。我很乐意提供一些附加信息/控制台输出或一些示例片段。或者是否有更适合于将音乐添加到具有现有音频的视频的过滤器?非常感谢。镜头样本很好。@Gyan给你。如果你还需要别的东西,请告诉我。folderstructure一开始可能有点吓人,只需看一眼自述文件即可。-来自德国的问候