文章目录
一. 安装FFmpeg
如果已经安装,建议先卸载.
brew uninstall ffmpeg
然后用以下命令安装.
brew install ffmpeg --with-fdk-aac --with-tools --with-ffplay --with-freetype --with-libass --with-libvorbis --with-opus --with-libvpx --with-x265
此时我们用 ffplay 一个h265地址是无法播放的。因为flv里面不支持
二. 下载源码
git clone 以下地址,
https://github.com/FFmpeg/FFmpeg
切换到 release/4.0版本。
三. 修改源码
应用我们的patch
patch -p1 < /flv_hevc.patch
flv.hevc.path 如下:
diff --git a/libavformat/flv.h b/libavformat/flv.h
index df5ce3d17f..97324cca46 100644
--- a/libavformat/flv.h
+++ b/libavformat/flv.h
@@ -109,6 +109,7 @@ enum {
FLV_CODECID_H264 = 7,
FLV_CODECID_REALH263= 8,
FLV_CODECID_MPEG4 = 9,
+ FLV_CODECID_HEVC = 12,
};
enum {
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index 51c4cd6cec..5c2650c7a0 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -36,6 +36,7 @@
#include "internal.h"
#include "avio_internal.h"
#include "flv.h"
+#include "hevc.h"
#define VALIDATE_INDEX_TS_THRESH 2500
@@ -238,6 +239,8 @@ static int flv_same_video_codec(AVCodecParameters *vpar, int flags)
return vpar->codec_id == AV_CODEC_ID_VP6A;
case FLV_CODECID_H264:
return vpar->codec_id == AV_CODEC_ID_H264;
+ case FLV_CODECID_HEVC:
+ return vpar->codec_id == AV_CODEC_ID_HEVC;
default:
return vpar->codec_tag == flv_codecid;
}
@@ -279,6 +282,10 @@ static int