gpt4 book ai didi

audio - 是否可以通过标准 GET 请求将广告或消息动态拼接到 MP3 文件中?

转载 作者:行者123 更新时间:2023-12-03 00:26:51 25 4
gpt4 key购买 nike

假设您有一个 60,000,000 字节的 MP3 文件,还有一个 500,000 字节的 MP3 广告,两者都以相同的比特率编码。

是否可以使用 nginx 或 apache 模块将 MP3“Content-Length” header 值更改为 60,500,000,然后控制传入的“Content-Range”请求,以便前 500,000 个字节返回广告音频,并且任何范围请求大于500,000 开始返回具有 500,000 字节偏移量的常规音频文件?

还是只能使用 FFmpeg 等应用程序将广告(或消息)拼接到 MP3 文件中以重新渲染整个文件?

抱歉,如果这是一个愚蠢的问题,我只是想跳出框框思考。

最佳答案

您不能随意拼接 MP3 而没有伪影和解码器错误。

由于 Bit Reservoir,您通常也不能在帧边界上剪切/拼接 MP3。 .基本上,一个特定的 MP3 帧可能包含来自另一个帧的数据,以便在需要时更有效地使用可用带宽。忽略比特储存器也可能导致伪影和/或解码器错误。

您可以做的是重新编码您的广告并最终重新加入流。也就是说,在广告插入点,将流解码为 PCM,为您的广告混合(或替换音频),然后将此并行流重新编码为 PCM。如果编码参数相同,最终(在几个额外的 MP3 帧之后),您将拥有相同的比特流,并且您可以返回从同一个缓冲区读取流。

如果您要在互联网广播(直播)流上插入广告,请记住,您必须在服务器上为每个客户端(或至少为每个广告变体和时间变体)执行此操作。如果这是用于播客或其他预先录制的内容,我建议使用 FFmpeg 路线。您无需构建任何东西,您可以在输出被编码时流式传输和缓存输出,并且您将与其他编解码器兼容,而无需为每个编解码器/容器构建一次性代码。

关于audio - 是否可以通过标准 GET 请求将广告或消息动态拼接到 MP3 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57548910/

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