直播推流之 4: ffmpeg借助librtmp推流效果展示

277 阅读1分钟

项目背景介绍

使用ffmpeg集成rtmpdump项目的librtmp库,推送rtmp流。视频编码采用h264,音频采用AAC。本项目的开发过程是一步一步来的,前面有一些编码,采集的准备知识。如果是0基础,建议从前面的博客开始学起

环境

  • VS 版本: Visual Studio Professional 2022 (64 位)
  • QT 版本: 5.12.0
  • c++ 语言
  • ffmpeg3.4 window编译的动态库
  • fdk-aac v0.1.6,编译后集成到ffmpeg
  • x264库
  • librtmp库
  • srs rtmp服务

联系我:

复制代码
-   邮箱: gu19860621@163.com
-   微信: p13071210551

代码

  • 源码仓库: https://github.com/SnailCoderGu/MediaPush.git
  • 讲解视频地址:https://www.bilibili.com/video/BV1qn4y1X7Uy/?vd_source=2ab45245b7588a1df906fbf0327a6921

直播效果

image.png

用源码方式启动srs

image.png

启动直播后的控制台打印的信息

image.png

image.png

在调用 avio_open 方法 wiresharek抓包的信息

image.png

这里就是rtmp连接的信息,关于rtmp协议我后面再讲解

在调用 avformat_write_header的抓包

image.png

这里是发送metadata和第一个sps,pps,和ASC帧

metadata

image.png

sps,pps信息,当然这里做了一些封装,具体理解要看协议

image.png

ASC 信息可以用于音频解码 image.png