SRT Encoder基于srt自适应码率的编码器

Posted 朱韦刚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SRT Encoder基于srt自适应码率的编码器相关的知识,希望对你有一定的参考价值。

原文链接:https://github.com/runner365/srt_encoder/blob/master/README-Cn.md

SRT Encoder基于srt自适应码率的编码器

基于srt协议中的rtt,maxBw,inflight等信息预测低延时的出口带宽,动态的调整编码bitrate,从而实现基于网络出口带宽的编码。

  1. 简单易用,使用ffmpeg命令行
    基于ffmpeg-4.1, 通过自定义的ffmpeg,实现srt自适应码率编码器。只需要替换ffmpeg4.1源码fftools目录下的ffmpeg.c,和加入srt_header.h,编译ffmpeg即可。
  2. 基于srt直播协议
    srt是基于udt针对音视频特性而设计的传输协议,简单/实时/高效。
  3. 基于bbr拥塞算法
    基于bbr拥塞算法,预测出口bitrate,自适应bitrate动态编码。

1.原理
基于bbr基本拥塞控制算法,通过一个周期内(1~2seconds)的minRTT, maxBw, 和当前的inflight,预测出编码bitrate的状态机(保持,增加,减少)。

2. 如何编译
依赖ffmpeg动态库,libsrt, libx264, lib265, libfdk_aac等。

2.1 替代ffmpeg.c
编码器是基于ffmpeg4.1开发的,只需要把ffmpeg-4.1/fftools目录下的ffmpeg.c和srt_header.h拷贝替换到对应ffmpeg4.1版本对应的目录下。 ffmpeg4.1的官方打包源码地址: ffmpeg-4.1.tar.xz
2.2 如何编译ffmpeg

请看wiki: How to compile

3. 如何运行
3.1 srt encoder
运行:
ffmpeg -re -i source.mp4 -c:v libx264 -s 640x360 -b:v 700k -c:a libfdk_aac -ab 64k -ar 44100 -ac 2 -f mpegts ‘srt://127.0.0.1:10080?streamid=#!::h=live/livestream,m=publish’

备注:

  1. 不能配置-crf 因为x264的crf模式与动态bitrate冲突
  2. 不能配置-qp 因为x264的qp模式与动态bitrate冲突
  3. srt内的媒体封装格式是mpegts

转载至:https://github.com/runner365/srt_encoder/blob/master/README-Cn.md

 

如有错误请指正:

交流请加QQ群:62054820
QQ:379969650.

以上是关于SRT Encoder基于srt自适应码率的编码器的主要内容,如果未能解决你的问题,请参考以下文章

流媒体视频直播协议的新星——SRT协议的优点和应用介绍

SRT编码器之Rendezvous模式详解

SRT编码器之Rendezvous模式详解

如何使用千视高清编码器与vMix进行SRT连接

vMix软件下SRT编解码器设备功能配置手册

智勇电子最新H.265支持SRT协议编码器ZY-EDHV201发布