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;
}
相关推荐
月月玩代码14 小时前
抖音视频无水印下载工具,电脑端工具,下载非常方便,使用方法简单,一看就会!
音视频·视频下载·抖音无水印视频下载工具·视频手动下载·视频1080p下载
行业探路者17 小时前
健康宣教二维码是什么?主要有哪些创新优势?
人工智能·学习·音视频·二维码·产品介绍
锦瑟弦音19 小时前
esp32实现在线音频播放
音视频
Android系统攻城狮1 天前
Android16音频之开始录制AudioRecord.startRecording:用法实例(一百八十八)
音视频·android16·音频进阶
blackorbird1 天前
Android Pixel 9 的零点击漏洞利用链全解析:从发送杜比音频解码到内核提权
android·音视频
Aaron_9451 天前
VideoRAG:革新视频理解的检索增强生成技术深度解析
人工智能·音视频
Android系统攻城狮1 天前
Android16音频之设置Privacy信息AudioRecord.Builder.setPrivacySensitive:用法实例(一百九十七)
音视频·android16·音频进阶
胖_大海_1 天前
【FFmpeg+Surface 底层渲染,实现超低延迟100ms】
ffmpeg
byte轻骑兵1 天前
【LE Audio】BAP协议精讲[1]: 开启低功耗音频新纪元
人工智能·音视频·蓝牙·le audio·bap
小咖自动剪辑1 天前
视频去水印与去字幕教程:免费去水印软件与去字幕工具推荐
人工智能·音视频·实时音视频·视频编解码