音视频系列5:ffmpeg拉流并引入ROS库

音视频系列5:ffmpeg拉流并引入ROS系统

前言

音视频系列博客:
音视频系列1:ffmpeg+rtmp拉流
音视频系列2:ffmpeg将H.264解码为RGB
音视频系列3:使用ffmpeg + nginx搭建本地转发服务器
音视频系列4:新手如何入门ffmpeg(以FLV解码H.264为例)

有兴趣的小伙伴们可以看看。

上节我们更新了ffmpeg拉流中过时的API,本节将对上节的代码进行封装,并引入ROS包,使得ffmpeg拉来的流可以通过ROS系统进行传输,伸手党可以直接拉到最下面,附github代码。
在这里插入图片描述

封装

原本只有一个main.cpp,现在我们定义一个Transdata类。
所以现在扩展成三个文件:
transdata.cpp
transdata.h
Trans_node.cpp

其中,transdata.cpp里写明类的函数的具体过程,transdata.h用于定义函数名,Trans_node.cpp用于实例化Transdata类,并调用其函数。

Trans_node.cpp:

#include <iostream>
#include "transdata.h"

Transdata transdata;
using namespace std;
int main(int argc, char** argv)
{
   
    if(transdata.Transdata_init() < 0)
    {
   
        cout <<"init error !" << endl;
        return -1;
    }
    while(1)
    {
   
       transdata.Transdata_Recdata();
    }
    transdata.Transdata_free();
    return 0;
}

transdata.cpp 里定义了几个重要的函数,分别是:

初始化:Transdata_init()


int Transdata::Transdata_init() {
   
    //Register
    av_register_all();
    //Network
    avformat_network_init();
    //Input
    if ((ret = avformat_open_input(&ifmt_ctx, in_filename, 0, 0)) < 0) {
   
        printf
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值