gpt4 book ai didi

ffmpeg - 使用 ffmpeg 进行流式传输时,仅当源文件/流没有音频时才插入音频

转载 作者:行者123 更新时间:2023-12-04 23:12:09 37 4
gpt4 key购买 nike

无论我的源文件或源流是有音轨还是根本没有音轨,我都想使用相同的命令。然后,我希望 ffmpeg 对音频进行转码 - 仅在不存在源音轨时使用音频源(如果存在)或静音(我看到各种不同的 ffmpeg 音频过滤器可以生成)。
有人可以为此给出正确命令的示例或一些指示吗?使用 map 的一些方法或类似的开关?
请注意,我真正的意思是根本没有音轨,而不是说在源音轨中检测到静音。能够在一个命令中执行此操作而不是知道可以执行每个变体的两个谨慎命令是关键。

最佳答案

ffmpeg -i input.mp4 -f lavfi -i anullsrc=cl=mono -shortest output.mp4
这是一个默认 stream selection 的示例。可以使用行为。它将自动选择具有最多 channel 的音频流,如果它们相同,它将选择具有最低索引号的音频流。
  • 如果 input.mp4没有音频,那么它将使用 anullsrc 生成的静音音频.
  • 如果 input.mp4确实有音频,那么它将使用来自 input.mp4 的音频.

  • 缺点是默认的流选择行为只会为每种流类型选择一个流。所以如果 input.mp4有多个视频流,则只会选择一个视频流。
    在这种情况下,我建议使用 ffprobe to determine if a file has audio ,然后使用 -map to choose the specific streams you want .
    这可以通过简单的 shell 脚本自动调整,例如 Bash example 1Bash example 2 .

    关于ffmpeg - 使用 ffmpeg 进行流式传输时,仅当源文件/流没有音频时才插入音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64145845/

    37 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com