H265与ffmpeg改进开发
H265与ffmpeg改进开发
1. Introduction
KSC265是集编码、解码于一体的H.265编解码软件,完全遵循H.265协议标准。符合H.265编码规范的视频都可以通过KSC265进行解码,通过KSC265编码的视频都可以通过遵循H.265协议标准的解码器进行解码。KSC265无任何开源代码依赖,完全自主知识产权,专业的算法团队,在底层架构,汇编指令,算法优化方面持续进行优化,不断迭代,压缩率、编解码效率全面超越x265和openhevc。
- 在2016.8, 编码器V2.1版本,参加世界编码器大赛,综合评价结果中排名软件编码器第一。
- 2016.12, 编码器V2.4版本,在世界编码器大赛的4K编码赛事中,取得了压缩效率最优的成绩。是中国商用H.265视频编解码软件获取的最高国际荣誉。
本github主要交流KSC265在直播领域的应用使用,内容包括rtmp直播推流支持H.265编码,FFmpeg FLV针对H.265进行的扩展规范和相关patch。
参考:https://github.com/CDN-Union/H265
2. FFmpeg 扩展
2.1 Code
目录Code/FFmpeg下已经将patch达到了origin/release/3.2等branch上。
当前已经支持的release分支包括:
- 2.8
- 3.0
- 3.1
- 3.2
- 3.3
patch位于Code/flv265patch_from_kingsoft.7z压缩包内。
patch涉及的改动包括:
- libavform/flv.h
- libavform/flvenc.c
- libavform/flvdec.c
2.2 Document
针对FFmpeg flv的扩展,请见
https://github.com/CDN-Union/H265/tree/master/Document
3. KSC265功能
- KSC265旨在通过技术优势转换成持续的成本优势,在有限的带宽下享受更高的画质,近一半的带宽下,相同的观看体验。
- 在编码方面,可配置7个编码速度级别,对应不同的编码场景。
- 编解码支持x86,x64,ARM32/64位架构,以及上面上主流操作系统。
- KSC265真正实现低码率高画质,在各种环境下,均实现相同画质下30%-50%的码率节省。尤其在移动端编码上拥有重大突破,为移动直播的H.265的落地扫清了技术障碍。
- 解码完备性强,在丢帧及多种网络丢包情况下仍然能成功解码播放,解码速度比openHEVC具有碾压性优势。
3.1 应用场景说明
3.2 体验与试用
KSC265 Demo体验
- iOS Demo
https://github.com/ksvc/ks265codec/tree/master/iOS_demo
- Android Demo
https://github.com/ksvc/ks265codec/tree/master/Android_demo
H265与ffmpeg改进开发的更多相关文章
- FFmpeg扩展开发
FFmpeg扩展开发 对FFmpeg RTMP/FLV部分做了扩展,用于支持H.265. 针对<video_file_format_spec_v10_1> VIDEODATA部分扩展如下: ...
- FFMPEG SDK 开发介绍(原创)
来源:http://blog.sina.com.cn/s/blog_62a8419a01016exv.html 本文是作者在使用ffmpeg sdk开发过程中的实际经验,现在与大家分享,欢迎学习交流. ...
- 【视频开发】ONVIF、RTSP/RTP、FFMPEG的开发实录
ONVIF.RTSP/RTP.FFMPEG的开发实录 前言 本文从零基础一步步实现ONVIF协议.RTSP/RTP协议获取IPC实时视频流.FFMPEG解码.开发环境为WIN7 32位 + VS201 ...
- Windows下搭建ffmpeg+VS2008开发环境详细教程【转】
本文转载自:http://www.voidcn.com/article/p-vxdntdgc-bkq.html 由于个人是从事音视频开发相关的工作,所以也把自己的一些过程写下来,方便大家以及自己查看, ...
- Qt与FFmpeg联合开发指南(二)——解码(2):封装和界面设计
与解码相关的主要代码在上一篇博客中已经做了介绍,本篇我们会先讨论一下如何控制解码速度再提供一个我个人的封装思路.最后回归到界面设计环节重点看一下如何保证播放器界面在缩放和拖动的过程中保证视频画面的宽高 ...
- Qt与FFmpeg联合开发指南(三)——编码(1):代码流程演示
前两讲演示了基本的解码流程和简单功能封装,今天我们开始学习编码.编码就是封装音视频流的过程,在整个编码教程中,我会首先在一个函数中演示完成的编码流程,再解释其中存在的问题.下一讲我们会将编码功能进行封 ...
- (原)ffmpeg过滤器开发和理解
最近学习了ffmpeg关于filter过滤器的开发,关于中间的几个相关概念,我们先放在简单介绍一下: AVFilterGraph:几乎完全等同与directShow中的fitlerGraph,代表一串 ...
- Qt与FFmpeg联合开发指南(四)——编码(2):完善功能和基础封装
上一章我用一个demo函数演示了基于Qt的音视频采集到编码的完整流程,最后经过测试我们也发现了代码中存在的问题.本章我们就先处理几个遗留问题,再对代码进行完善,最后把编码功能做基础封装. 一.遗留问题 ...
- Qt与FFmpeg联合开发指南(一)——解码(1):功能实现
前言:对于从未接触过音视频编解码的同学来说,使用FFmpeg的学习曲线恐怕略显陡峭.本人由于工作需要,正好需要在项目中使用.因此特地将开发过程总结下来.只当提供给有兴趣的同学参考和学习. 由于FFmp ...
随机推荐
- SQLServer的XP_CmdShell提权
当我们拿到了某个网站SQLServer数据库的SA权限用户密码的话,我们就可以使用XP_CmdShell提权了. 开启xp_cmdshell exec sp_configure 'show advan ...
- Windows核心编程 第四章 进程(中)
4.2 CreateProcess函数 可以用C r e a t e P r o c e s s函数创建一个进程: BOOL CreateProcessW( _In_opt_ LPCWSTR lpAp ...
- Ubuntu Linux 学习篇 配置DNS服务器
BIND9 DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS中保存了一张域名(doma ...
- Redis数据结构—链表与字典的结构
目录 Redis数据结构-链表与字典的结构 链表 Redis链表节点的结构 Redis链表的表示 Redis链表用在哪 字典 Redis字典结构总览 Redis字典结构分解 Redis字典的使用 Re ...
- Day009 二维数组
多维数组 多维数组是数组的嵌套(数组的元素是数组,数组的数组元素的元素是数组...),比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组. 二维数组 int a[][]=new int ...
- 【报错】org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webSocketHandlerMapping' defined in class path resource
环境:maven+eclipse+jdk1.8 [tomcat使用的是maven自带的插件,实质原因就是出在tomcat版本问题] 背景:在进行SSM集成WebSocket的时候,项目启动报org.s ...
- PHP基础—PHP的数据类型与常量使用
- VS2019解决X64无法内联汇编的问题
策略:VC编译器x64平台不支持内联汇编,我们利用在Source文件中直接添加asm文件,直接在asm文件中写汇编代码,然后将asm文件编译为OBJ文件.然后就可以在c++文件中声明asm文件中的函数 ...
- Codeforces Round #694 (Div. 2)
A. Strange Partition 题意:就是求最小和最大的bi/x向上取整的和. 思路:见题解:https://blog.csdn.net/qq_45900709/article/detai ...
- 05.24 ICPC 2019-2020 North-Western Russia Regional Contest复现赛+Codeforces Round #645 (Div. 2)
A.Accurate Movement(复现赛) 题意:两个木块最左边都在0的位置,最右边分别为a,b(b>a),并且短的木条只能在长木条内移动,问两个木条需要移动多少次才能使两个木条的右端都在 ...