更新代码

This commit is contained in:
feiyangqingyun
2021-11-03 14:14:27 +08:00
parent f027369f27
commit 39199724c2
151 changed files with 391 additions and 188 deletions

View File

@@ -68,17 +68,17 @@ void FFmpegThread::initlib()
bool FFmpegThread::init()
{
//在打开码流前指定各种参数比如:探测时间/超时时间/最大延时等
//设置缓存大小,1080p可将值调大
av_dict_set(&options, "buffer_size", "8192000", 0);
//以tcp方式打开,如果以udp方式打开将tcp替换为udp
av_dict_set(&options, "rtsp_transport", "tcp", 0);
//设置超时断开连接时间,单位微秒,3000000表示3秒
av_dict_set(&options, "stimeout", "3000000", 0);
//设置最大时延,单位微秒,1000000表示1秒
av_dict_set(&options, "max_delay", "1000000", 0);
//自动开启线程数
av_dict_set(&options, "threads", "auto", 0);
// //在打开码流前指定各种参数比如:探测时间/超时时间/最大延时等
// //设置缓存大小,1080p可将值调大
// av_dict_set(&options, "buffer_size", "8192000", 0);
// //以tcp方式打开,如果以udp方式打开将tcp替换为udp
// av_dict_set(&options, "rtsp_transport", "tcp", 0);
// //设置超时断开连接时间,单位微秒,3000000表示3秒
// av_dict_set(&options, "stimeout", "3000000", 0);
// //设置最大时延,单位微秒,1000000表示1秒
// av_dict_set(&options, "max_delay", "1000000", 0);
// //自动开启线程数
// av_dict_set(&options, "threads", "auto", 0);
//打开视频流
avFormatContext = avformat_alloc_context();
@@ -239,7 +239,9 @@ void FFmpegThread::run()
continue;
}
if (av_read_frame(avFormatContext, avPacket) >= 0) {
frameFinish = av_read_frame(avFormatContext, avPacket);
qDebug() << TIMEMS << frameFinish;
if (frameFinish >= 0) {
//判断当前包是视频还是音频
int index = avPacket->stream_index;
if (index == videoStreamIndex) {
@@ -252,7 +254,7 @@ void FFmpegThread::run()
continue;
}
frameFinish = avcodec_receive_frame(videoCodec, avFrame2);
frameFinish = avcodec_receive_frame(videoCodec, avFrame2);
if (frameFinish < 0) {
continue;
}

View File

@@ -8,14 +8,14 @@ Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
QStringList urls;
urls << "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov";
urls << "rtsp://admin:Admin123456@192.168.1.64:554/Streaming/Channels/102?transportmode=unicast&profile=Profile_2";
urls << "rtsp://admin:Admin123456@192.168.0.64:554/Streaming/Channels/102?transportmode=unicast&profile=Profile_2";
urls << "rtsp://192.168.1.108:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif";
urls << "rtsp://192.168.1.15:554/media/video1";
urls << "rtsp://192.168.1.15:554/media/video2";
urls << "rtsp://192.168.1.247:554/av0_0";
urls << "rtsp://192.168.1.247:554/av0_1";
ui->cboxUrl->addItems(urls);
ui->cboxUrl->setCurrentIndex(5);
ui->cboxUrl->setCurrentIndex(1);
}
Widget::~Widget()