Audio ffmpeg 4:在视频播放过程中使用stream_loop参数循环音频,最终导致无限循环 总结 上下文 我使用的软件 问题
结果Audio ffmpeg 4:在视频播放过程中使用stream_loop参数循环音频,最终导致无限循环 总结 上下文 我使用的软件 问题,audio,video,ffmpeg,Audio,Video,Ffmpeg,结果 4.1. 实际结果 4.2。预期结果 我尝试了什么来修复这个bug 如何重现此缺陷:提供所需数据的最小且可测试的示例 问题 来源 上下文 我想将音频WAV设置为视频WEBM的背景声音。视频可以比音频短,也可以比音频长。在我将音频添加到视频的那一刻,我不知道两个流的长度。音频必须重复,直到视频结束(如果视频在最后一次音频重复结束之前结束,音频可能会被截断) 我使用的软件 我使用ffmpeg版本4.2.2-1ubuntu1~18.04.sav0 问题 ffmpeg在处理音频和视频混合时似乎进
4.1. 实际结果 4.2。预期结果
上下文 我想将音频WAV设置为视频WEBM的背景声音。视频可以比音频短,也可以比音频长。在我将音频添加到视频的那一刻,我不知道两个流的长度。音频必须重复,直到视频结束(如果视频在最后一次音频重复结束之前结束,音频可能会被截断) 我使用的软件 我使用ffmpeg版本4.2.2-1ubuntu1~18.04.sav0 问题 ffmpeg在处理音频和视频混合时似乎进入了一个无限循环。此外,当前生成的输出文件(包含视频和音频)的长度等于音频的长度,而不是视频的长度 此问题似乎是由以下命令行触发的:
ffmpeg -i directory_1/video.webm -stream_loop -1 -fflags +shortest -max_interleave_delta 50000 -i directory_2/audio.wav directory_3/video_and_audio.webm
结果
实际结果
三件事:
配置:--prefix=/usr--extra version='1ubuntu1~18.04.sav0' --toolchain=harded--libdir=/usr/lib/x86_64-linux-gnu--incdir=/usr/include/x86_64-linux-gnu--arch=amd64--enable gpl--disable strip--enable avresample--disable filter=resample--enable avisynch--enable ladspa--enable libaom--enable libass enable libble-libbs2b--enable libcaca--enable libcdio--enable-libcodec2--enable-libflite--enable-libfontconfig--enable-libfreetype--enable-libgme--enable-libgsm--enable-libjack--enable-libmp3lame--enable-libmysofa--enable-libopenjpeg--enable-libopus--enable-librsvg--enable-librubberband--enable-libshine--enable-libsnapy--enable libsoxr--enable libspeex--enable libssh--enable libthera--enable libtwolame--enable libvidstab--enable libvorbis--enable libvpx--enable libwavpack--enable libwebp--enable-libx265--enable-libxml2--enable libxvid enable libzvbi--enable-lv2--enable omx--enable openal--enable opencl--enable opengl--enable-sdl2--enable-libdc1394--enable-libdrm--enable-libiec61883--enable-nvenc--enable-chromaprint--enable-frei0r--enable-libx264--enable-shared libavutil 56。31.100 / 56. 31.100 libav编解码器58。54.100 / 58. 54.100 libav58格式。29.100 / 58. 29.100 libav设备58。8.100 / 588.100 libav过滤器7。57.100 / 7. 57.100 libavresample 4。00 / 4. 00 libswscale 5。5.100 / 5. 5.100磅重采样3。5.100 / 3. 5.100 libpostroc 55。5.100 / 555.100“youtubed/my_youtube_video.webm”中的“0,matroska,webm”输入:元数据: 编码器:Chrome持续时间:不适用,开始时间:0.000000,比特率:不适用 流#0:0(英文):视频:vp8,yuv420p(渐进式),3200x1608,SAR 1:1 DAR 400:201,1k tbr,1k tbn,1k tbc(默认) 元数据: alpha#u模式:输入流的1个猜测频道布局#1.0:立体声输入#1,wav,来自“tmp#u music/original#u music.wav”:
持续时间:00:00:11.78,比特率:1411KB/s 流#1:0:音频:pcm#s16le([1][0][0][0]/0x0001),44100 Hz,立体声,s16,1411 kb/s流映射:流#0:0->#0:0(vp8 (本机)->vp9(libvpx-vp9))流#1:0->#0:1(pcm#s16le (本机)->opus(libopus))按[q]停止,[?]获取帮助 [libvpx-vp9@0x5645268aed80]v1.8.2[libopus@0x5645268b09c0]无位 费率设置。默认为96000个基点。输出#0,webm,到 “youtubed/my\u youtube\u video\u with\u music.webm”:元数据: 编码器:Lavf58.29.100 流#0:0(英文):视频:vp9(libvpx-vp9),yuv420p(渐进式),3200x1608[SAR 1:1 DAR 400:201],q=-1--1200 kb/s,1k fps,1k tbn,1k 待定(默认) 元数据: alpha_模式:1 编码器:Lavc58.54.100 libvpx-vp9 辅助数据: cpb:比特率最大/最小/平均:0/0/0缓冲区大小:0 vbv_延迟:-1 流#0:1:音频:opus(libopus),48000 Hz,立体声,s16,96 kb/s 元数据: 编码器:Lavc58.54.100 libopus 预期结果
ffmpeg -i directory_1/video.webm -stream_loop -1 -i directory_2/audio.wav -c:v copy -shortest -fflags +shortest -max_interleave_delta 100M directory_3/video_and_audio.webm