FFmpeg-RTCP BYE数据包

问题描述 投票:0回答:1

我正在研究一些C ++项目,该项目依赖于Wi-Fi RAK5206电子板。我正在使用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);
c++ ffmpeg rtp rtcp
1个回答
0
投票

请确保您正在从应用程序中调用此av_write_trailer函数。

如果不是,请调试并检查。

/ *编写预告片(如果有)。预告片必须在您之前写好*关闭编写标头时打开的CodecContext;除此以外* av_write_trailer()可能会尝试使用已释放的内存* av_codec_close()。 * /av_write_trailer(oc);

© www.soinside.com 2019 - 2024. All rights reserved.