├── Code ├── FFmpeg │ ├── FFmpeg_v2.8.tar.gz │ ├── FFmpeg_v3.0.tar.gz │ ├── FFmpeg_v3.1.tar.gz │ ├── FFmpeg_v3.2.tar.gz │ └── FFmpeg_v3.3.tar.gz ├── README.md └── flv265patch_from_kingsoft.7z ├── Document ├── README.md ├── images │ ├── kaibo.png │ └── scenarios.png └── video_file_format_spec_v10_1_ksyun_20170615.doc └── README.md /Code/FFmpeg/FFmpeg_v2.8.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/young-I/CDN-Union_H265/61c07344fa666c2c2182908baef8e7606c7bb1e1/Code/FFmpeg/FFmpeg_v2.8.tar.gz -------------------------------------------------------------------------------- /Code/FFmpeg/FFmpeg_v3.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/young-I/CDN-Union_H265/61c07344fa666c2c2182908baef8e7606c7bb1e1/Code/FFmpeg/FFmpeg_v3.0.tar.gz -------------------------------------------------------------------------------- /Code/FFmpeg/FFmpeg_v3.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/young-I/CDN-Union_H265/61c07344fa666c2c2182908baef8e7606c7bb1e1/Code/FFmpeg/FFmpeg_v3.1.tar.gz -------------------------------------------------------------------------------- /Code/FFmpeg/FFmpeg_v3.2.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/young-I/CDN-Union_H265/61c07344fa666c2c2182908baef8e7606c7bb1e1/Code/FFmpeg/FFmpeg_v3.2.tar.gz -------------------------------------------------------------------------------- /Code/FFmpeg/FFmpeg_v3.3.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/young-I/CDN-Union_H265/61c07344fa666c2c2182908baef8e7606c7bb1e1/Code/FFmpeg/FFmpeg_v3.3.tar.gz -------------------------------------------------------------------------------- /Code/README.md: -------------------------------------------------------------------------------- 1 | ## 金山云FFmpeg扩展 2 | 3 | 金山云对FFmpeg RTMP/FLV部分做了扩展,用于支持H.265。 4 | 5 | 针对《video_file_format_spec_v10_1》 VIDEODATA部分扩展如下: 6 | 7 | ### VIDEODATA 8 | The VideoTagHeader contains video-specific metadata. 9 | #### VideoTagHeader 10 | | Field |Type | Comment| 11 | | :---: | :---| :---| 12 | |Frame Type|UB [4]|Frame Type Type of video frame. The following values are defined:
1 = key frame (for AVC and HEVC, a seekable frame)
2 = inter frame (for AVC and HEVC, a non-seekable frame)
3 = disposable inter frame (H.263 only)
4 = generated key frame (reserved for server use only)
5 = video info/command frame| 13 | |CodecID|UB [4]|Codec Identifier. The following values are defined:
2 = Sorenson H.263
3 = Screen video
4 = On2 VP6
5 = On2 VP6 with alpha channel
6 = Screen video version 2
7 = AVC
12=HEVC| 14 | |HVCPacketType| IF CodecID == 12
UI8| The following values are defined:
0 = HEVC sequence header
1 = HEVC NALU
2 = HEVC end of sequence (lower level NALU sequence ender is not required or supported| 15 | |CompositionTime| IF CodecID==7 OR CodecID == 12
SI24 |IF AVCPacketType == 1 OR HVCPacketType == 1
Composition time offset
ELSE
0
See ISO 14496-12, 8.15.3 for an explanation of composition times. The offset in an FLV file is always in milliseconds.| 16 | |VideoTagBody |IF FrameType == 5
UI8
ELSE (
IF CodecID == 2
H263VIDEOPACKET
IF CodecID == 3
SCREENVIDEOPACKET
IF CodecID == 4
VP6FLVVIDEOPACKET
IF CodecID == 5
VP6FLVALPHAVIDEOPACKET
IF CodecID == 6
SCREENV2VIDEOPACKET
IF CodecID == 7
AVCVIDEOPACKET
IF CodecID == 12
HVCVIDEOPACKET
)|Video frame payload or frame info
If FrameType == 5, instead of a video payload, the Video Data Body contains a UI8 with the following meaning:
0 = Start of client-side seeking video frame sequence
1 = End of client-side seeking video frame sequence
For all but AVCVIDEOPACKET or HVCVIDEOPACKET, see the SWF File
Format Specification for details| 17 | 18 | ## 使用说明 19 | 目录flv265-Kingsoft/FFmpeg下已经将patch达到了origin/release/3.2等branch上。 20 | 21 | 当前已经支持的release分支包括: 22 | * 2.8 23 | * 3.0 24 | * 3.1 25 | * 3.2 26 | * 3.3 27 | 28 | ## patch说明 29 | patch位于flv265patch_from_kingsoft.7z压缩包内。 30 | 31 | 32 | patch涉及的改动包括: 33 | * libavform/flv.h 34 | * libavform/flvenc.c 35 | * libavform/flvdec.c 36 | -------------------------------------------------------------------------------- /Code/flv265patch_from_kingsoft.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/young-I/CDN-Union_H265/61c07344fa666c2c2182908baef8e7606c7bb1e1/Code/flv265patch_from_kingsoft.7z -------------------------------------------------------------------------------- /Document/README.md: -------------------------------------------------------------------------------- 1 | # Document 2 | 3 | ## 说明 4 | 5 | 金山云对FFmpeg RTMP/FLV部分做了扩展,用于支持H.265。 6 | 7 | 请见[video_file_format_spec_v10_1_ksyun_20170615.doc](video_file_format_spec_v10_1_ksyun_20170615.doc) 8 | -------------------------------------------------------------------------------- /Document/images/kaibo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/young-I/CDN-Union_H265/61c07344fa666c2c2182908baef8e7606c7bb1e1/Document/images/kaibo.png -------------------------------------------------------------------------------- /Document/images/scenarios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/young-I/CDN-Union_H265/61c07344fa666c2c2182908baef8e7606c7bb1e1/Document/images/scenarios.png -------------------------------------------------------------------------------- /Document/video_file_format_spec_v10_1_ksyun_20170615.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/young-I/CDN-Union_H265/61c07344fa666c2c2182908baef8e7606c7bb1e1/Document/video_file_format_spec_v10_1_ksyun_20170615.doc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # H265 2 | 3 | Maintainer: 金山 4 | Members:金山,网宿,星域,七牛 5 | 6 | ## 1. Introduction 7 | 金山云KSC265是集编码、解码于一体的H.265编解码软件,完全遵循H.265协议标准。符合H.265编码规范的视频都可以通过KSC265进行解码,通过KSC265编码的视频都可以通过遵循H.265协议标准的解码器进行解码。KSC265无任何开源代码依赖,完全自主知识产权,专业的算法团队,在底层架构,汇编指令,算法优化方面持续进行优化,不断迭代,压缩率、编解码效率全面超越x265和openhevc。 8 | 9 | * 在2016.8, 编码器V2.1版本,参加世界编码器大赛,综合评价结果中排名软件编码器第一。 10 | * 2016.12, 编码器V2.4版本,在世界编码器大赛的4K编码赛事中,取得了压缩效率最优的成绩。是中国商用H.265视频编解码软件获取的最高国际荣誉。 11 | 12 | 本github主要交流KSC265在直播领域的应用使用,内容包括rtmp直播推流支持H.265编码,FFmpeg FLV针对H.265进行的扩展规范和相关patch。 13 | ### 2. FFmpeg 扩展 14 | #### 2.1 Code 15 | 目录Code/FFmpeg下已经将patch达到了origin/release/3.2等branch上。 16 | 17 | 当前已经支持的release分支包括: 18 | * 2.8 19 | * 3.0 20 | * 3.1 21 | * 3.2 22 | * 3.3 23 | 24 | patch位于Code/flv265patch_from_kingsoft.7z压缩包内。 25 | 26 | patch涉及的改动包括: 27 | * libavform/flv.h 28 | * libavform/flvenc.c 29 | * libavform/flvdec.c 30 | 31 | #### 2.2 Document 32 | 针对FFmpeg flv的扩展,请见[Document/video_file_format_spec_v10_1_ksyun_20170615.doc](Document) 33 | 34 | ### 3. KSC265功能 35 | 36 | * KSC265旨在通过技术优势转换成持续的成本优势,在有限的带宽下享受更高的画质,近一半的带宽下,相同的观看体验。 37 | * 在编码方面,可配置7个编码速度级别,对应不同的编码场景。 38 | * 编解码支持x86,x64,ARM32/64位架构,以及上面上主流操作系统。 39 | * KSC265真正实现低码率高画质,在各种环境下,均实现相同画质下30%-50%的码率节省。尤其在移动端编码上拥有重大突破,为移动直播的H.265的落地扫清了技术障碍。 40 | * 解码完备性强,在丢帧及多种网络丢包情况下仍然能成功解码播放,解码速度比openHEVC具有碾压性优势。 41 | 42 | #### 3.1 应用场景说明 43 | ![](Document/images/scenarios.png) 44 | 45 | #### 3.2 体验与试用 46 | KSC265 Demo体验 47 | * iOS Demo 48 | 49 | https://github.com/ksvc/ks265codec/tree/master/iOS_demo 50 | 51 | * Android Demo 52 | 53 | https://github.com/ksvc/ks265codec/tree/master/Android_demo 54 | 55 | #### 3.3 金山移动直播App示范 56 | 57 | 开播-金山云已经集成了KSC265,Appstore和应用宝均有下载,可以快速下载试用。 58 | 59 | ![kaibo](Document/images/kaibo.png) 60 | 61 | 62 | 63 | 64 | 65 | --------------------------------------------------------------------------------