2

我想使用 ffmpeg 制作 android 媒体播放器。(通过WIFI网络捕获MPEG2 TS组播流并解码)我检查了以下内容:

  • 我的 iptime AP 支持 WIFI 组播协议。(有线PC发送组播流,连接wifi的PC可以接收)
  • 我的 Android 手机可以通过 WIFI 接收多播流。我编写了加入 udp 多播组并接收数据包的 NDK 套接字编程(我向 AndroidManifest.xml 添加了多播访问权限)
  • FFMPEG 库移植到安卓,可以播放本地媒体文件。

但是当我尝试使用 FFMPEG 库打开网络流时,avformat_open_input() 函数返回失败。

gFormatCtx = avformat_alloc_context();
av_register_all(); 
avcodec_register_all(); 
avformat_network_init(); 
if(avformat_open_input(&gFormatCtx,"udp://@239.100.100.100:4000",NULL,NULL) != 0)
    return -2;

此代码始终返回“-2”。如果我使用“av_dict_set()”api,我应该使用哪个选项?

av_dict_set(&options, "udp_multicast", "mpegtsraw", 0);

请让我知道我应该检查什么 avformat_open_input 错误?

谢谢。

4

0 回答 0