ffmpeg libav:有没有办法以输入格式设置流信息而不是搜索流信息?

ffmpeg libav:有没有办法以输入格式设置流信息而不是搜索流信息?,ffmpeg,libav,Ffmpeg,Libav,我正在使用ffmpeg API为RTMP流编写一个播放器。我知道将流信息转换为输入格式的常用方法是使用avformat\u find\u stream\u info。这就行了。然而,因为它是RTMP,所以需要很长时间才能扫描足够多的流来获取信息。我已经玩过max\u analyze\u duration和probesize了,它稍微好一点,但仍然需要10-15秒才能加载。这对我的申请来说太长了 但我是在另一端制造溪流的人,所以我确切地知道里面有什么。对我来说,告诉输入格式流信息是什么,而不是让它

我正在使用ffmpeg API为RTMP流编写一个播放器。我知道将流信息转换为输入格式的常用方法是使用
avformat\u find\u stream\u info
。这就行了。然而,因为它是RTMP,所以需要很长时间才能扫描足够多的流来获取信息。我已经玩过
max\u analyze\u duration
probesize
了,它稍微好一点,但仍然需要10-15秒才能加载。这对我的申请来说太长了

但我是在另一端制造溪流的人,所以我确切地知道里面有什么。对我来说,告诉输入格式流信息是什么,而不是让它搜索,似乎更有意义。但是我找不到这方面的任何例子,我尝试将
avformat\u new\u stream
与输入格式一起使用的尝试也不起作用

有人知道这是否可能吗?如果是这样,你能告诉我怎么做吗


谢谢

这就是所谓的

是的,您可以伪造序列头(假设为h.264/aac)。但它不会实现你想要的。发生的事情是,您的RTMP服务器(reflector)正在抢先一步。因此,即使分析速度更快,您也必须首先等待第一个视频关键帧

您需要配置RTMP服务器以发送完整的GOP(在nginx+RTMP中,设置为
wait\u key on