ffplay实现自定义输入流播放
来源:http://www.tudoupe.com时间:2022-06-20
文章目录
- 前言
- 如何使用AVIOContext?
- 1、定义回调方法
- 相关AV格式背景
- 3、销毁资源
- 在 ffplay中使用AVIOContext
- 1、添加字段
- 2、定义接口
- 相关AV格式背景
- 4、销毁资源
- 总结
前言
播放这个视频,有时我们只能得到字节数据,例如,Windows内置资源只能在内存中获取视频文件数据,或通过自定义协议网络传输的视频,在这一阶段,我们需要实现流数据输入接口来播放它。ffmpeg的AVIOContext支持此功能,我们需要做的只是简单地进行游戏。
如何使用AVIOContext?
avio是一个ffmpeg自定义输入流对象,是AVformatContext的一个字段,我只是创建一个 avio对象并实现它的回调方法,然后把它给AVformatContext。
1、定义回调方法
以文件流为例(避免打开文件和获取文件长度的操作)
相关AV格式背景
3、销毁资源
在 ffplay中使用AVIOContext
1、添加字段
在视频状态中添加下列字段
2、定义接口
相关AV格式背景
在read_thread中添加以下代码到 avformat_open_input:
4、销毁资源
将下列代码添加到 stream_close中
总结
这就是我们今天要谈的。实现这种功能的原因是作者过去习惯于工作,遇到相关使用场景,在程序启动时播放MP4嵌入资源,显然,读出来并在播放时保存文件是不好的主意,ffmpeg本身支持自定义输入流,因此,添加这个功能是很容易的。总的来说,该功能具有一些使用场景,实现并不复杂。
下一篇:C#中的钩子是啥?
相关新闻
- 2022-08-04 WPF的由来
- 2022-08-04 Win11勒索软件防护怎么打开?Win11安
- 2022-08-04 Windows系统jdk的配置
- 2022-08-04 Windows10 OneNote怎么重新登录?如何重
- 2022-08-04 超好用的 Windows 效率工具推荐
- 2022-08-04 Windows如何在CMD或PowerShell中配置代理
- 2022-08-04 powershell和cmd对比
- 2022-08-04 【QT】Windows下QT下载安装
- 2022-08-04 windows下 C++ 实现类属性的get和set方
- 2022-08-04 Win11快速助手在哪里?Win11打开快速
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
