优化视频解析代码;修改拉流方式为UDP

pull/7/head
caoyuhui 7 months ago
parent 9b9834be4d
commit 115375311f

@ -1,5 +1,6 @@
#include "cffmpeg_decode.h" #include "cffmpeg_decode.h"
Cffmpeg_decode::Cffmpeg_decode() { // Cffmpeg_decode::Cffmpeg_decode() {
Cffmpeg_decode::Cffmpeg_decode(QObject *parent) : QObject(parent) {
fmtCtx = avformat_alloc_context(); fmtCtx = avformat_alloc_context();
pkt = av_packet_alloc(); pkt = av_packet_alloc();
yuvFrame = av_frame_alloc(); yuvFrame = av_frame_alloc();
@ -31,10 +32,10 @@ bool Cffmpeg_decode::open_input_file() {
// 设置缓存大小1080p可将值调大 // 设置缓存大小1080p可将值调大
av_dict_set(&avdic, "buffer_size", "2048000", 0); av_dict_set(&avdic, "buffer_size", "2048000", 0);
// 以udp方式打开如果以tcp方式打开将udp替换为tcp // 以udp方式打开如果以tcp方式打开将udp替换为tcp
av_dict_set(&avdic, "rtsp_transport", "tcp", 0); av_dict_set(&avdic, "rtsp_transport", "udp", 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", "200000", 0); // av_dict_set(&avdic, "stimeout", "200000", 0);
av_dict_set(&avdic, "max_delay", "3", 0); // 设置最大时延 av_dict_set(&avdic, "max_delay", "3", 0); // 设置最大时延
av_dict_set(&avdic, "tune", "zerolatency", 0); av_dict_set(&avdic, "tune", "zerolatency", 0);
av_dict_set(&avdic, "preset", "ultrafast", 0); av_dict_set(&avdic, "preset", "ultrafast", 0);

@ -27,10 +27,12 @@ extern "C" {
// class Cffmpeg_decode: public QThread // class Cffmpeg_decode: public QThread
class Cffmpeg_decode : public QObject { class Cffmpeg_decode : public QObject {
Q_OBJECT
public: public:
explicit Cffmpeg_decode(); // explicit Cffmpeg_decode();
Cffmpeg_decode(QObject *parent = nullptr);
~Cffmpeg_decode(); ~Cffmpeg_decode();
Q_OBJECT
public: public:
void setUrl(QString url); void setUrl(QString url);
bool open_input_file(); bool open_input_file();

Loading…
Cancel
Save