H265ffmpeg改进开发

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改进开发的更多相关文章

  1. FFmpeg扩展开发

    FFmpeg扩展开发 对FFmpeg RTMP/FLV部分做了扩展,用于支持H.265. 针对<video_file_format_spec_v10_1> VIDEODATA部分扩展如下: ...

  2. FFMPEG SDK 开发介绍(原创)

    来源:http://blog.sina.com.cn/s/blog_62a8419a01016exv.html 本文是作者在使用ffmpeg sdk开发过程中的实际经验,现在与大家分享,欢迎学习交流. ...

  3. 【视频开发】ONVIF、RTSP/RTP、FFMPEG的开发实录

    ONVIF.RTSP/RTP.FFMPEG的开发实录 前言 本文从零基础一步步实现ONVIF协议.RTSP/RTP协议获取IPC实时视频流.FFMPEG解码.开发环境为WIN7 32位 + VS201 ...

  4. Windows下搭建ffmpeg+VS2008开发环境详细教程【转】

    本文转载自:http://www.voidcn.com/article/p-vxdntdgc-bkq.html 由于个人是从事音视频开发相关的工作,所以也把自己的一些过程写下来,方便大家以及自己查看, ...

  5. Qt与FFmpeg联合开发指南(二)——解码(2):封装和界面设计

    与解码相关的主要代码在上一篇博客中已经做了介绍,本篇我们会先讨论一下如何控制解码速度再提供一个我个人的封装思路.最后回归到界面设计环节重点看一下如何保证播放器界面在缩放和拖动的过程中保证视频画面的宽高 ...

  6. Qt与FFmpeg联合开发指南(三)——编码(1):代码流程演示

    前两讲演示了基本的解码流程和简单功能封装,今天我们开始学习编码.编码就是封装音视频流的过程,在整个编码教程中,我会首先在一个函数中演示完成的编码流程,再解释其中存在的问题.下一讲我们会将编码功能进行封 ...

  7. (原)ffmpeg过滤器开发和理解

    最近学习了ffmpeg关于filter过滤器的开发,关于中间的几个相关概念,我们先放在简单介绍一下: AVFilterGraph:几乎完全等同与directShow中的fitlerGraph,代表一串 ...

  8. Qt与FFmpeg联合开发指南(四)——编码(2):完善功能和基础封装

    上一章我用一个demo函数演示了基于Qt的音视频采集到编码的完整流程,最后经过测试我们也发现了代码中存在的问题.本章我们就先处理几个遗留问题,再对代码进行完善,最后把编码功能做基础封装. 一.遗留问题 ...

  9. Qt与FFmpeg联合开发指南(一)——解码(1):功能实现

    前言:对于从未接触过音视频编解码的同学来说,使用FFmpeg的学习曲线恐怕略显陡峭.本人由于工作需要,正好需要在项目中使用.因此特地将开发过程总结下来.只当提供给有兴趣的同学参考和学习. 由于FFmp ...

随机推荐

  1. Python中的socket网络模块

    目录 Socket 服务端(server.py) 客户端(client.py) socket中的一些常用方法 Socket 对象(内建)方法 Python Internet 模块 Python3 提供 ...

  2. 1.关于逆向工程(RE、RCE)-笔记

    名词 逆向工程(Reverse Engineering,简称RE):代码逆向工程(Reverse Code Engineering,简称RCE). 逆向分析方法 静态分析:不执行代码,观察外部特征.获 ...

  3. canvas绘制虚线图表

    最近有读者加我微信咨询这个问题,如下图所示: 要实现的效果如下: 其实难度不大,但是考虑一些人员对于canvas不熟悉,还是简单的介绍下. 其实该图表,就是一个圆圈外面在套一个圆弧的效果, 主要的难点 ...

  4. 如何在centos上配置802.1Q VLAN标记,linux单网卡多vlan多网段Ip配置案例

    介绍 VLAN使将大型网络分成较小且易于管理的网络成为可能.802.1Q是所有供应商都在其网络设备中实施的标准.某些交换机能够将多个VLAN分配给单个网络端口.使用此功能,您可以将多个VLAN分配给单 ...

  5. 类的两个装饰器classmethod、staticethod和内置魔术方法

    一.两个装饰器@classmethod.@staticmethod @classmethod:把类中的绑定方法变成一个类方法,cls 就等于类名 有什么用? 1.在方法中任然可以引用类中的静态变量 2 ...

  6. Mybatis学习之自定义持久层框架(五) 自定义持久层框架:封装CRUD操作

    前言 上一篇文章我们完成了生产sqlSession的工作,与数据库的连接和创建会话的工作都已完成,今天我们可以来决定会话的内容了. 封装CRUD操作 首先我们需要创建一个SqlSession接口类,在 ...

  7. jquery的入口函数 和 js和jq的转化

    先引入jq包 然后<script type="text/javascript"> $(function{ 获取标签:$('#box2') jq转为js:$('#box2 ...

  8. 强哥JavaScript学习笔记

    js文件放header头最后,js代码放body体最后 js语言定位: js是基于对象的语言 php.java是面向对象的语言 定义变量: var str="hello world" ...

  9. inux操作系统测试工具

    inux操作系统测试工具 转载minions_222 最后发布于2017-08-02 11:42:13 阅读数 1481  收藏 展开 转自:http://blog.csdn.net/crisscha ...

  10. 云计算OpenStack核心组件---neutron网络服务(8)*****

    一.neutron介绍 1.Neutron概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要创建. ...