当前位置: 首页 > 知识库问答 >
问题:

如何使FFmpeg在单循环静音视频中自动注入mp3音轨?

邓令雪
2023-03-14

大家都来!所以基本上这就是我想要实现的:

我有一个约3分钟长的静音视频。我有一个mp3格式的音轨列表(40首歌曲在一个文件夹中,每首持续时间为2到6分钟)

我想让这个视频自动循环播放,从播放列表中提取歌曲,并将它们一个接一个地注入到视频中。每当一首歌结束时,列表中的下一首应该在此刻开始播放。视频继续播放,不关心曲目的持续时间。

我认为这是在youtube上以24/7模式播放带有视频背景的广播的第一步,可以在不需要停止翻译的情况下将额外的曲目放入播放列表。

我的问题是我是FFmpeg的新手,为了实现我的目标,我将感谢任何关于FFmpeg主题的建议

共有1个答案

巫马昆琦
2023-03-14

您可以对concat demuxer的播放列表进行实时更新,但是每个音频文件必须具有相同的属性、相同的流数量以及相同的格式。

>

  • 创建input.txt,其中包含:

    ffconcat version 1.0
    file 'audio1.mp3'
    file 'audio2.mp3'
    file 'audio3.mp3'
    file 'audio40.mp3'
    

    所有文件名必须是“安全的”,否则它将以安全文件名失败。文件名中基本上没有特殊字符,只使用绝对路径。有关更多信息,请参见concat demuxer。

    ffmpeg -re -framerate 10 -loop 1 -i image.jpg -re -f concat -i input.txt -map 0:v -map 1:a -c:v libx264 -tune stillimage -vf format=yuv420p -c:a aac -g 20 -b:v 2000k -maxrate 2000k -bufsize 8000k -f flv rtmp://youtube
    
    ffconcat version 1.0
    file 'audio41.mp3'
    file 'audio42.mp3'
    file 'audio43.mp3'
    

    原子替换input.txt:

    mv temp.txt input.txt
    

    有关更多信息,请参见FFmpeg Wiki:Concatenate。

    input.txt中列出的文件必须全部相同:

      null

    如果它们不同,那么您必须在将它们添加到播放列表之前对它们进行预处理。Bash示例使每个音频符合立体声(-AC 2),具有44100采样率(-AR 44100),并在M4A容器中另存为AAC格式:

    mkdir conformed
    for f in *.mp3; do ffmpeg -i "$f" -map 0:a -ac 2 -ar 44100 -c:a aac "conformed/${f%.*}.m4a"; done
    

    >

  • 输出到AAC建议流到YouTube。

    如果这样做,就可以避免在FFMPEG命令中对音频重新编码到YouTube。只需将-c:a aac更改为-c:a copy,在步骤#2:RunFFMPEG,以流式传输到YouTube。

  •  类似资料:
    • 音频和视频都能在第一次正确播放,在音频播放完成时视频循环(因为它更短)。唯一的问题是音频循环不工作,一旦音频第一次完成,流就停止了。 以下是日志: ffmpeg version 4.3.1版权所有(c)2000-2020 ffmpeg开发人员 使用Apple clang version 12.0.0(clang-1200.0.32.27) 配置构建:--prefix=/usr/local/cell

    • 我想从视频中提取对齐的音频流。目标是获得与视频精确对齐的音频序列。 问题:视频和音频序列不对齐。输出音频持续时间比视频输入短。 要复制的脚本: 我的尝试(没有成功): 按照此答案中的建议添加 添加,同时导出视频(链接) 在Audacity中打开。那里的持续时间是 在VLC中打开。持续时间: 显式设置帧率 其他视频文件 如果能给我一些建议,我将不胜感激。非常感谢。

    • 我有一个长音频部分和一个短视频部分,我想在一起mux。 我正在尝试使用以下命令进行MUX: video_0-0002.h264-整个文件(2秒长) Audio.wav-从4秒到6秒 但音频被搞砸了...我怎样才能正确地做呢? 也试过了,听起来好像最后还是有寂静。

    • 我正尝试使用以下命令与最新的ffmpeg构建从我的.mp3文件中删除静默: 但是,会产生以下输出: 感谢任何帮助!

    • 但是我将ffmpeg更新到了最新版本(ffmpeg version git-2012-06-16-809d71d),现在在这个版本中参数不起作用。 请告诉我如何使用将新音频添加到视频(不是混合)中。