前言
ffmpeg官网源码是不支持rtmp h265推流和拉流的,因为rtmp里面的数据流是flv格式的,而flv是不支持h265编码的,因为当时制定flv封装协议的时候,h265还没出来,现在Adobe又要淘汰flv ,自然不想支持了。ffmpeg因为adobe的标准不支持flv h265,所以也不会更新rtmp 推拉h265流,所以我们如果需要rtmp 推拉h265视频流时,只能修改ffmpeg的flv解复用的相关部分代码
修改内容
主要是按照h264的方式,新增h265的支持,修改文件为flv.h和flvdec.c ,flvenc.c h265(hevc)的CodecID自定义为12,为什么是12呢,因为主要厂商增加flV扩展h265都是用的这个
源码修改对比
flv.h:
flvdec.c:
static int flv_same_video_codec(AVCodecParameters *vpar, int flags)
static int flv_set_video_codec(AVFormatContext *s, AVStream *vstream, int flv_codecid, int read)
static int flv_read_packet(AVFormatContext s, AVPacket pkt)
flvenc.c:
static void flv_write_codec_header(AVFormatContext s, AVCodecParameters par, int64_t ts)
static int flv_write_trailer(AVFormatContext *s)
static int flv_write_packet(AVFormatContext *s, AVPacket *pkt)
源码下载
https://download.csdn.net/download/weixin_44474051/13712541