我想使用 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 错误?
谢谢。