fix: 光电吊舱拉流问题修复

video_old
cbwu 6 months ago
parent 7f2334513e
commit 04d5d4c252

@ -158,10 +158,10 @@ void GDDCSet::on_pushButton_pushURL_clicked() {
saveDataToLocalIni();
if (ui->pushButton_pushURL->text() == "推送") {
emit SignalStartConnect(6);
//ui->pushButton_pushURL->setText("停止推送");
// ui->pushButton_pushURL->setText("停止推送");
} else {
emit SignalStopConnect(6);
//ui->pushButton_pushURL->setText("推送");
// ui->pushButton_pushURL->setText("推送");
}
}
@ -208,11 +208,11 @@ void GDDCSet::saveDataToLocalIni() {
::WritePrivateProfileStringA("光电吊舱-视频连接-显示窗口1", "播放URL", inBuf,
strSysIniName);
// m_playURL2 = ui->lineEdit_playURL2->text();
// ba = m_playURL2.toLocal8Bit();
// inBuf = ba.data();
// ::WritePrivateProfileStringA("光电吊舱-视频连接-显示窗口2", "播放URL", inBuf,
// ::WritePrivateProfileStringA("光电吊舱-视频连接-显示窗口2", "播放URL",
// inBuf,
// strSysIniName);
m_pushURL = ui->lineEdit_pushURL->text();
@ -239,49 +239,35 @@ void GDDCSet::saveDataToLocalIni() {
// break;
// }
// }
QString GDDCSet::streamTypeToflowType(QString type)
{
if(type == "RTSP")
{
return "TCP";
}
else if(type == "RTMP")
{
return "UDP";
}
else
return "TCP";
QString GDDCSet::streamTypeToflowType(QString type) {
if (type == "RTSP") {
return "UDP";
} else if (type == "RTMP") {
return "TCP";
} else
return "TCP";
}
QString GDDCSet::flowTypeTostreamType(QString type)
{
if(type == "TCP")
{
return "RTSP";
}
else if(type == "UDP")
{
return "RTMP";
}
else
return "RTSP";
QString GDDCSet::flowTypeTostreamType(QString type) {
if (type == "TCP") {
return "RTMP";
} else if (type == "UDP") {
return "RTSP";
} else
return "RTSP";
}
void GDDCSet::setConnectURL1Text(QString param)
{
ui->pushButton_ConnectURL1->setText(param);
void GDDCSet::setConnectURL1Text(QString param) {
ui->pushButton_ConnectURL1->setText(param);
}
void GDDCSet::setConnectURL2Text(QString param)
{
ui->pushButton_ConnectURL1->setText(param);
void GDDCSet::setConnectURL2Text(QString param) {
ui->pushButton_ConnectURL1->setText(param);
}
void GDDCSet::setNetCtrlText(QString param)
{
ui->pushButton_NetCtrlConnect->setText(param);
void GDDCSet::setNetCtrlText(QString param) {
ui->pushButton_NetCtrlConnect->setText(param);
}
void GDDCSet::setPushStreamText(QString param)
{
ui->pushButton_pushURL->setText(param);
void GDDCSet::setPushStreamText(QString param) {
ui->pushButton_pushURL->setText(param);
}

@ -76,7 +76,7 @@ void GDDCdlg::initWindow() {
m_DlgGDDCSet = new GDDCSet(this);
m_DlgGDDCSet->setWindowFlags(Qt::Dialog);
m_DlgGDDCSet->setWindowModality(Qt::WindowModal);//设置为模态对话框
m_DlgGDDCSet->setWindowModality(Qt::WindowModal); // 设置为模态对话框
m_GDDCCmdDlg = new GDDCCmdDlg(this);
m_GDDCStateDlg = new GDDCStateInfo(this);
ui->pushButShowStatePage->setIcon(QIcon(":/res/right.png"));
@ -341,7 +341,7 @@ void GDDCdlg::resizeUI() {
// 定时器处理
void GDDCdlg::GDDCControlTimeOut() {
if (m_GDDCCmdDlg->sendTimes > 0) { // 优先发送次数指令
if (m_GDDCCmdDlg->sendTimes > 0) { // 优先发送次数指令
m_GDDCCmdDlg->sendTimes -= 1;
// UDP控制
@ -357,7 +357,7 @@ void GDDCdlg::GDDCControlTimeOut() {
if (m_GDDCCmdDlg->sendTimes == 0) {
m_GDDCCmdDlg->clearTJDCCmdBuffer();
}
} else { // 发送常发帧或长按指令
} else { // 发送常发帧或长按指令
m_GDDCCmdDlg->UpdateDataTJDC();
// UDP控制
if (connectFlag[3]) {
@ -379,6 +379,7 @@ void GDDCdlg::startConnectURL1() {
// 开始拉流
ui->WgtffmpegVideo->m_flowType = m_DlgGDDCSet->m_FlowType;
// ui->WgtffmpegVideo->setPushStreamIP(m_DlgGDDCSet->m_pushURL);
ui->WgtffmpegVideo->play(m_DlgGDDCSet->m_playURL1);
}
}
@ -472,7 +473,8 @@ void GDDCdlg::startPushURL() {
// //方式1命令行推流
// process = new QProcess();
// connect(process, &QProcess::readyReadStandardOutput, this, [=]() mutable {
// connect(process, &QProcess::readyReadStandardOutput, this, [=]() mutable
// {
// QString Output = process->readAllStandardOutput();
// qDebug() << "Output:" << Output;
// });
@ -482,14 +484,16 @@ void GDDCdlg::startPushURL() {
// });
// // process->start("cmd",QStringList()<<"/c"<<"ffmpeg -i
// // rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid -c copy -f flv
// // rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid -c copy -f
// flv
// // rtmp://182.92.130.23/app/test");
// QStringList m_cmd;
// QString str;
// // str = "ffmpeg -i " + m_DlgGDDCSet->m_playURL1 + " -c copy -f flv " +
// // m_DlgGDDCSet->m_pushURL;
// str = "ffmpeg -rtsp_transport tcp -i " + m_DlgGDDCSet->m_playURL1 + " -c:v libx264 -c:a copy -f flv " +
// str = "ffmpeg -rtsp_transport tcp -i " + m_DlgGDDCSet->m_playURL1 + "
// -c:v libx264 -c:a copy -f flv " +
// m_DlgGDDCSet->m_pushURL;
// m_cmd << "/c" << str;
// process->start("cmd", m_cmd);
@ -497,9 +501,8 @@ void GDDCdlg::startPushURL() {
// //方式2代码推流
// if(!connectFlag[0])
// {
// QMessageBox::information(NULL, tr("提示"), "请先开始连接", QMessageBox::Ok);
// m_DlgGDDCSet->setPushStreamText("推送");
// return;
// QMessageBox::information(NULL, tr("提示"), "请先开始连接",
// QMessageBox::Ok); m_DlgGDDCSet->setPushStreamText("推送"); return;
// }
ui->WgtffmpegVideo->setPushStreamIP(m_DlgGDDCSet->m_pushURL);
m_DlgGDDCSet->setPushStreamText("停止推送");
@ -535,8 +538,7 @@ void GDDCdlg::stopPushURL() {
// }
// }
//方式2代码推流
// 方式2代码推流
ui->WgtffmpegVideo->setPushStreamIP("");
m_DlgGDDCSet->setPushStreamText("推送");

@ -166,8 +166,8 @@ void ModelCameraDlg::on_pushButton_5_clicked() {
QString str = ui->pushButton_5->text();
if (str == "播放视频") {
QString ip = ui->videoIPLineEdit->text();
ui->cameraVideoWidget->setPushStreamIP(
QStringLiteral("rtmp://182.92.130.23/app/stream999"));
// ui->cameraVideoWidget->setPushStreamIP(
// QStringLiteral("rtmp://182.92.130.23/app/stream999"));
ui->cameraVideoWidget->play(ip);
ui->pushButton_5->setText("暂停播放");
} else {

@ -36,13 +36,17 @@ bool Cffmpeg_decode::open_input_file() {
//========================解码============================
AVDictionary *avdic = NULL;
// 设置缓存大小1080p可将值调大
av_dict_set(&avdic, "buffer_size", "2048000", 0);
av_dict_set(&avdic, "buffer_size", "4096000", 0);
// 以udp方式打开如果以tcp方式打开将udp替换为tcp
av_dict_set(&avdic, "rtsp_transport", m_rtsp_transport.toUtf8().data(), 0);
if (m_rtsp_transport == "tcp")
av_dict_set(&avdic, "rtsp_transport", "tcp", 0);
else
av_dict_set(&avdic, "rtsp_transport", "udp", 0);
// 设置超时断开连接时间,单位微秒//listen_timeout
// av_dict_set(&avdic, "listen_timeout", "200000", 0);
av_dict_set(&avdic, "stimeout", "200000", 0);
av_dict_set(&avdic, "max_delay", "3", 0); // 设置最大时延
av_dict_set(&avdic, "stimeout", "6000000", 0);
av_dict_set(&avdic, "max_delay", "300000", 0); // 设置最大时延
av_dict_set(&avdic, "tune", "zerolatency", 0);
av_dict_set(&avdic, "preset", "ultrafast", 0);
@ -204,7 +208,7 @@ void Cffmpeg_decode::run() {
decoderCtx->height, //
QImage::Format_RGB32);
emit sendQImage(img);
QThread::msleep(28);
// QThread::msleep(28);
}
}
av_packet_unref(inputPacket);
@ -334,7 +338,4 @@ void Cffmpeg_decode::saveDone() {
}
}
void Cffmpeg_decode::setFlowType(QString param)
{
m_rtsp_transport = param;
}
void Cffmpeg_decode::setFlowType(QString param) { m_rtsp_transport = param; }

Loading…
Cancel
Save