fix: 修复吊舱拉空流卡住问题

video_old
cbwu 5 months ago
parent e79520c591
commit de478c09ec

@ -41,7 +41,7 @@ void GDDCSet::initParam() {
// ui->comboBox_streamType->addItem("UDP 422"); // ui->comboBox_streamType->addItem("UDP 422");
// ui->comboBox_streamType->addItem("UDP TS"); // ui->comboBox_streamType->addItem("UDP TS");
ui->comboBox_playURL1->addItem( ui->comboBox_playURL1->addItem(
QStringLiteral("rtsp://192.168.55.65:554/live/track0")); QStringLiteral("rtsp://10.90.10.132:554/live/track0"));
ui->comboBox_playURL1->setCurrentIndex(0); ui->comboBox_playURL1->setCurrentIndex(0);
// ui->comboBox_playURL1->addItem( // ui->comboBox_playURL1->addItem(
// "rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid"); // "rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid");

@ -79,11 +79,13 @@ bool Cffmpeg_decode::open_input_file() {
av_dict_set(&avdic, "buffer_size", "2048000", 0); av_dict_set(&avdic, "buffer_size", "2048000", 0);
// 设置超时断开连接时间,单位微秒//listen_timeout // 设置超时断开连接时间,单位微秒//listen_timeout
// av_dict_set(&avdic, "listen_timeout", "200000", 0); // av_dict_set(&avdic, "listen_timeout", "200000", 0);
av_dict_set(&avdic, "stimeout", "5000000", 0); // 设置超时5 av_dict_set(&avdic, "stimeout", "3000000", 0); // 设置超时3
av_dict_set(&avdic, "max_delay", "300000", 0); // 设置最大时延300ms av_dict_set(&avdic, "max_delay", "300000", 0); // 设置最大时延300ms
av_dict_set(&avdic, "tune", "zerolatency", 0); // 实时编码 av_dict_set(&avdic, "tune", "zerolatency", 0); // 实时编码
av_dict_set(&avdic, "preset", "faster", 0); // ultrafast av_dict_set(&avdic, "preset", "faster", 0); // ultrafast
av_dict_set(&avdic, "threads", "auto", 0); // 自动开启线程数 av_dict_set(&avdic, "threads", "auto", 0); // 自动开启线程数
// 设置最大重试时间为1s,解决avformat_open_input打开空流时间过长问题
av_dict_set(&avdic, "max_interleave_delta", "1000000", 0);
// av_dict_set(&avdic, "rtsp_flags", "prefer_tcp", 0); // 保持TCP连接 // av_dict_set(&avdic, "rtsp_flags", "prefer_tcp", 0); // 保持TCP连接
// av_dict_set(&avdic, "timeout", "500000", 0); // 超时时间设置为500ms // av_dict_set(&avdic, "timeout", "500000", 0); // 超时时间设置为500ms
@ -196,9 +198,9 @@ void Cffmpeg_decode::run() {
// 推流使用 // 推流使用
firstDts = AV_NOPTS_VALUE; // 初始化第一帧的DTS firstDts = AV_NOPTS_VALUE; // 初始化第一帧的DTS
startTime = av_gettime(); startTime = av_gettime();
int ret11 = 0;
// 读取数据包 // 读取数据包
while ((ret11 = av_read_frame(inputFormatCtx, inputPacket)) >= 0) { while (av_read_frame(inputFormatCtx, inputPacket) >= 0) {
// ret = av_read_frame(inputFormatCtx, inputPacket); // ret = av_read_frame(inputFormatCtx, inputPacket);
// if (ret < 0 || ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) { // if (ret < 0 || ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
// qDebug() << "ret:" << QString::number(ret); // qDebug() << "ret:" << QString::number(ret);
@ -314,9 +316,7 @@ void Cffmpeg_decode::run() {
if (m_saveVideoFlag) { if (m_saveVideoFlag) {
saveDone(); saveDone();
} }
if (ret11 == AVERROR_EOF && errno == 0) {
qDebug() << "ret:";
}
// QCoreApplication::processEvents(); // QCoreApplication::processEvents();
qDebug() << "All video play done"; qDebug() << "All video play done";
} }

@ -2,7 +2,7 @@
global::global() {} global::global() {}
QString g_SoftwareVersion = "版本号V1.0.0.1010"; QString g_SoftwareVersion = "版本号V1.0.0.1011";
QColor g_themeColor(51, 51, 51); QColor g_themeColor(51, 51, 51);
QString g_PushBtnStyle = /**正常情况下样式**/ QString g_PushBtnStyle = /**正常情况下样式**/

Loading…
Cancel
Save