ffmpeg rtmp 不清晰_视频和视频帧:ffmpeg的RTMP推流

本文介绍了推流的概念、RTMP协议,以及如何使用ffmpeg进行RTMP推流,包括命令行和代码实现。在推流过程中遇到的音频轨道错误和多码流问题也进行了分析和解决。
摘要由CSDN通过智能技术生成

cd58537e66c32e87fd43282ce3748c6d.png

写在前面

本文将介绍以下内容:

  • 什么是推流?将介绍推流常见的协议RTMPHLS等。
  • 怎么用ffmpeg做推流,包括cmdcode两种方式。
  • 笔者在开发推流时遇到的一些坑点。

I. 推流简介

笔者最初听到“推流”时,内心想:“这是什么高端玩意儿?”,迫于项目压力,不得不顶着压力调研和开发。经过一段时间的学习、开发和总结,笔者终于明白了推流,到底是个什么高端玩意儿?

什么是推流?

在 科普 | 直播中常说的推流拉流究竟是什么东东?中说:

推流,指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。

用大白话讲,推流就是把本地音视频数据通过网络上传到云端/后台服务器,所谓“采集阶段封包好”,笔者认为是未解码的H264的NALU。

推流的整个阶段如下图,本图同样摘自 科普 | 直播中常说的推流拉流究竟是什么东东?(读者请先忽略“拉流”这个名词,姑且替换为客户端用户在视频门户网站,如腾讯视频、B站等看网络在线的视频,自然也包括看直播。):

c4994861deffd2f07a43d8bb112ad719.png

上图从“推流端”到“源站”(同上文所说到的“服务器”),再到CDN分发节点,最后到“播放端”,整个过程的视音频数据,都是压缩的数据流。也就是说,对视频数据来说,就是H264码流。解码工作是在播放端进行的。

推流的工作可想而知,最多的应用就是直播;而在大多数视频门户网站,笔者目前也很疑惑,是否存在步骤1,从效率上来说,视频数据直接存放在“源站”,通过CDN根据客户端请求下发,应该就可以了。至于具体做法,有待考证,笔者在这里姑且记一笔吧。

了解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值