ffmpeg学习历程----通过ffplay修改一个自己的播放器(1)

本文介绍如何通过修改ffplay源码创建一个自定义播放器,旨在理解多媒体解码渲染及ffmpeg功能,如滤镜。内容包括定制化编译ffmpeg,将ffplay.c转换为C++11,以及将改造后的播放器整合进工程。重点是确认并仅支持H264解码,简化处理流程,便于针对特定视频格式进行ffmpeg定制和编译。
摘要由CSDN通过智能技术生成

    现在流行多媒体框架这么多,常见的vlc,qtav,ijkplayer(在端使用的框架),还有flv.js,hls.js较多的前端H5框架解决方案,解决方案都比较成熟.

    题外话:貌似是因为flash这玩意儿真的是一坨X,效率慢不说bug也是奇多,每次不升级都会导致浏览器第三方安全问题(现在连页面要求使用flash都要浏览器弹框授权了.限制很严格),所以现在大部分公司都在转向H5的解决(B站使用的是自己的flv.js,爱奇艺好像也是用流媒体的模式,解决方案没研究,不过肯定不是hls).

    题外话之二:好像连adobe公司自己都放弃了flash(http://tech.163.com/17/0726/07/CQ8M4HT200097U7T.html),声明在2020年之后放弃这部分的支持.现在adobe业务重心已经转向2B(ToBusinuss,对公司业务)了,在浪费浩大精力在这上面感觉也没啥好处不是?

    回到正题,通过ffplay.c改造一个自己的播放器,有啥用??通过理解改造ffplay希望增加对多媒体解码渲染还有ffmpeg其他功能(比如滤镜.音视频基础的了解).也可以用类似方案实现一个简单的工程播放器.通过这种方式还有另外的好处就是,依赖少,自己处理或者加深解码&渲染流程的理解.可以方便的对ffmpeg进行定制之后重新编译,由于我们在官方网站下载到的ffmpeg简单来说可以算是一大堆编解码器的集合,但是我们实际工程中,经过客户端播放的视频,质量可能都是相对统一的比如YUV420+H264+AAC(或者mp3),这样方便简化处理过程.

    主要内容:

  1. 定制化编译ffmpeg;
  2. 修改ffplay.c简化支持,完成C99到C++11的切换,
  3. 自己工程嵌入改造过后的播放器。

第一步:确认编解码器类型。这个ffmpeg命令行可以做到,配合管道很容易查找对应编码器支持情况。 这里可以看到h264编码的支持有,解码,编码而且是视频编码。

h264编码支持情况
我们只需要一个可以解码h264的解码功能的播放器就ok了。也不需要其他那么多编码格式,可以通过看ffmpeg的编译选项来确定支持的编码格式。

//暂留

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值