FFmpeg avformat_open_input具有内存定位文件

时间:2013-12-17 13:35:03

标签: c++ ffmpeg pcm networkstream

我想解码一个互联网音频流,但我不想将数据写入磁盘,因此数据只位于内存中。

但是当我想将数据解码为原始数据时,我必须初始化格式上下文,因此我需要使用avformat_open_input。但是这些功能需要文件的详细位置。

有没有人有解决方案,如何将我的内存定位数据放入格式上下文中以将此数据解码为原始数据?

2 个答案:

答案 0 :(得分:4)

您必须创建自定义AVIOContext

有关详细信息,请参阅我对Play a Video from MemoryStream, Using FFMpeg

的回答

答案 1 :(得分:1)

您不需要文件,只需使用您的internet-audiostream网址即可打开。像这样:

AVFormatContext *ic = avformat_alloc_context();
err = avformat_open_input(&ic, "rtmp://www.something.com/a.mp4", NULL, NULL);