flv原来是adobe公司在adobe flash还非常流行时推出的一个视频格式,官方明确flv格式并不支持h265格式的视频编码,其主要原因是由于版权问题。但是考虑到国内安防领域大量使用h265格式编码。要用FLV封装H.265数据,就需要扩展FLV增加CodecID来支持H.265。
目前国内CDN厂商扩展的CodecID一般都为12,其中金山云是在这一块走在前面的。
ffmpeg作为目前主流的推流工具,由于其身份的特殊性,并未官方支持非官方的标准,因此金山云推出了自己的ffmpeg补丁,通过修改ffmpeg源码实现,其修改后的源码地址为传送门,到发稿为止的最新版本为3.4版。
下面,小沃就来介绍一下编译方法:
1.准备编译环境,小沃使用的是ubuntu18.4。
2.下载源码,使用git clone https://github.com/ksvc/FFmpeg.git -b release/3.4 --depth=1命令直接下载。
3.安装相关编译依赖apt-get install build-essential yasm libx264-dev libx265-dev pkg-config -y
4.运行如下命令
./configure --enable-static --enable-pic \ --disable-encoders --enable-encoder=aac --enable-encoder=libx264 --enable-gpl --enable-libx264 --enable-encoder=libx265 --enable-libx265 \ --disable-decoders --enable-decoder=aac --enable-decoder=h264 --enable-decoder=hevc \ --disable-demuxers --enable-demuxer=aac --enable-demuxer=mov --enable-demuxer=mpegts --enable-demuxer=flv --enable-demuxer=h264 --enable-demuxer=hevc --enable-demuxer=hls \ --disable-muxers --enable-muxer=h264 --enable-muxer=flv --enable-muxer=f4v --enable-muxer=mp4 \ --disable-doc make -j8
5.编译,运行make -j 2,这里2是核心数。
然后就会在源码根目录生成ffmpeg,ffplay与ffserver三个文件。我们主要需要的就是ffmpeg,生成的ffmpeg支持h265的flv推流了。
文章作者:沃航科技