【发布时间】:2019-10-20 12:09:13
【问题描述】:
我正在做一些依赖于 Wi-Fi RAK5206 电子板的 C++ 项目。我正在使用 ffmpeg 库来获取视频和音频流,我遇到了可以启动和停止流四次的问题,但是当我想启动第五次时,我得到了错误。错误描述为Invalid data found when processing input,当我调用avformat_open_input函数时发生,我需要重新启动电子板,重新连接到Wi-Fi等。
我通过 Wireshark 应用程序发现 VLC 正在工作,并且在调用 TEARDOWN 时它正在发送一些 BYE 数据包。我想知道错误是否取决于他们,因为我没有从我的应用程序发送。如何进行设置以强制 ffmpeg 发送 BYE 数据包?
我在rtpenc.h 文件中找到了一些声明,当我想连接时设置并尝试了哪些选项,但显然没有成功。 我用于设置选项和打开输入的代码:
AVDictionary* stream_opts = 0;
av_dict_set(&stream_opts, "rtpflags", "send_bye", 0);
avformat_open_input(&format_ctx, url.c_str(), NULL, &stream_opts);
【问题讨论】: