gpt4 book ai didi

ffmpeg - `ffplay`如何检测到来自管道连接的ffmpeg的声音文件已经完成?

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

以下代码播放“sample.mp3”并终止。这太令人惊讶了,因为通过管道传递的数据是二进制流,所以 ffplay 应该不知道“sample.mp3”的持续时间,但它会在到达末尾后立即终止。

$ cat sample.mp3 | ffmpeg -i pipe:0 -f mp3 pipe:1 | ffplay -autoexit -

ffplay 看什么二进制信号来检测 sample.mp3 的终端?

最佳答案

-f mp3生成一个多路混合文件,即它不是 MP3 数据的原始流,而是结构化输入,即在一个容器中。可能有一个标题和尾部,并且每个 MP3 数据 block 都被框起来。

当 ffplay 接收到文件或管道输入时,它会探测输入并确定容器类型。然后它将数据传递给该解复用器以解析流。在每个解复用器中,就像 MP3 解复用器一样,有一个例程会发出 信号。邮箱 nd O 如果满足某些条件。对于 MP3,如果将缓冲数据分解为数据包的功能失败,那就是 EOF。

关于ffmpeg - `ffplay`如何检测到来自管道连接的ffmpeg的声音文件已经完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47380210/

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