ffmpeg解封装rtsp并录制视频-(3)完成对rtsp流通过责任链接收解封装AVPacket数据并解码视频再渲染视频

主函数:

cpp 复制代码
//108录制五秒视频
#include <iostream>
#include <thread>
#include "xtools.h"
#include "xdemux_task.h"
#include "xdecodetask.h"
#include "xvideo_view.h"
#include "xmux_task.h"
using namespace std;

//大华
#define CAM1 \
"rtsp://admin:admin@192.168.2.108/cam/realmonitor?channel=1&subtype=0"
//海康
#define CAM2 \
"rtsp://127.0.0.1:8554/test"
int main(int argc, char* argv[])
{
    XDemuxTask demux_task;
    for (;;)
    {
        if (demux_task.Open(CAM2))
        {
            cout << "shexiangtoudakaile!!!!";
            break;
        }
        MSleep(100);
        continue;
    }

    auto vpara = demux_task.CopyVideoPara();
    AVCodecParameters* video_para = nullptr;
    AVCodecParameters* audio_para = nullptr;
    AVRational* video_time_base = nullptr;
    AVRational* audio_time_base = nullptr;
    if (vpara)
    {
        video_para = vpara->para;
        video_time_base = vpara->time_base;
    }
    auto apara = demux_task.CopyAudioPara();
    if (apara)
    {
        audio_para = apara->para;
        audio_time_base = apara->time_base;
    }
    XMuxTask mux_task;
    if (!mux_task.Open("rtsp_out1.mp4", video_para, video_time_base,
        audio_para, audio_time_base
    ))
    {
        LOGERROR("mux_task.Open failed!");
        return -1;
    }
    demux_task.set_next(&mux_task);
    demux_task.Start();
    mux_task.Start();
    MSleep(5000);
    mux_task.Stop();

    if (!mux_task.Open("rtsp_out2.mp4", video_para, video_time_base,
        audio_para, audio_time_base
    ))
    {
        LOGERROR("mux_task.Open failed!");
        return -1;
    }
    mux_task.Start();
    MSleep(5000);
    mux_task.Stop();

    getchar();
    return 0;
}
相关推荐
Java程序员 拥抱ai23 分钟前
SpringBoot + FFmpeg + Redis:视频转码、截图、水印异步处理平台搭建
spring boot·redis·ffmpeg
老兵发新帖42 分钟前
无人机视频检测方案--增加实时推流,并支持开关可配置
音视频·无人机
却道天凉_好个秋1 小时前
OpenCV(五十一):视频前后景分离
人工智能·opencv·音视频
EasyCVR1 小时前
视频汇聚平台EasyCVR筑牢运动场馆可视化智能监控防线
音视频
给算法爸爸上香14 小时前
yolo tensorrt视频流检测软解码和硬解码
yolo·ffmpeg·视频编解码·tensorrt·nvcodec
迈火17 小时前
APISR IN COMFYUI:提升ComfyUI图像超分辨率的强力插件
图像处理·人工智能·计算机视觉·stable diffusion·aigc·音视频·midjourney
qq_3106585119 小时前
webrtc源码走读(五)核心引擎层——传输模块
服务器·网络·音视频·webrtc
dwp114717060720 小时前
在Windows上基于MSYS2 UCRT64工具链编译ffmpeg源码
windows·ffmpeg
怀旧诚子1 天前
rv1106幸狐开发板显示推视频
音视频
qq_310658511 天前
webrtc源码走读(六)核心引擎层——安全模块
服务器·c++·音视频·webrtc