[发明专利]基于FFmpeg和EMIF驱动的音视频数据传输方法有效
申请号: | 201910273869.6 | 申请日: | 2019-04-07 |
公开(公告)号: | CN110033780B | 公开(公告)日: | 2020-12-08 |
发明(设计)人: | 那彦;高兴鹏;王金鹏;陈建春;乜亮;王强军 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G10L19/00 | 分类号: | G10L19/00;H04N19/124;H04N19/42;G06F13/40;G06F13/10 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 陈宏社;王品华 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种基于FFmpeg和EMIF驱动的音视频数据传输方法,用于解决现有技术存在的可移植性差和不利于二次开发的技术问题,实现步骤为:对音频模拟信号和图像模拟信号进行模数转换;在DSP上对音频数字信号和图像数字信号进行压缩;在DSP上对音频压缩数据和图像压缩数据进行封装;编写外部存储器接口EMIF的用户空间驱动;基于FFmpeg和EMIF用户空间驱动,将封装后的音视频数据传输至FPGA。由于FFmpeg支持多种操作系统,本发明的可移植性强,FFmpeg提供了丰富的音视频处理函数接口,有利于二次开发,并且通过编写EMIF用户空间驱动,省掉了EMIF内核驱动需要把驱动加载到内核中的步骤。 | ||
搜索关键词: | 基于 ffmpeg emif 驱动 视频 数据传输 方法 | ||
【主权项】:
1.一种基于FFmpeg和EMIF驱动的音视频数据传输方法,其特征在于,是通过嵌入式音视频系统实现的,该嵌入式音视频系统包括摄像头、麦克风、视频模数转换模块、音频模数转换模块、数字信号处理器DSP和可编程门阵列FPGA,利用FFmpeg支持多种操作系统,提高了该传输方法的可移植性,FFmpeg提供了丰富的音视频处理函数接口,有利于二次开发,并且通过编写EMIF用户空间驱动,简化传输流程,具体包括如下步骤:(1)对音频模拟信号和图像模拟信号进行模数转换:通过视频模数转换模块对摄像头采集的图像模拟信号进行模数转换,得到图像数字信号,同时通过音频模数转换模块对麦克风采集的音频模拟信号进行模数转换,得到音频数字信号;(2)在DSP上对音频数字信号和图像数字信号进行压缩:在DSP上对音频数字信号和图像数字信号分别进行压缩,得到音频压缩数据和图像压缩数据;(3)在DSP上对音频压缩数据和图像压缩数据进行封装:基于FFmpeg音视频框架的封装函数,在数字信号处理器DSP上对音频压缩数据和视频压缩数据进行封装,得到封装后的音视频数据;(4)编写外部存储器接口EMIF的用户空间驱动:(4a)将外部存储器接口EMIF的寄存器物理地址和数据传输物理地址分别映射到EMIF驱动程序的用户空间,得到寄存器的虚拟内存地址和用于EMIF数据传输的虚拟内存地址;(4b)对寄存器的虚拟内存地址偏移量为14h处的内存地址重新赋值,并通过所赋的值确定EMIF数据传输的位数和10Mbps以下的EMIF数据传输速率;(4c)对用于EMIF数据传输的虚拟内存地址、EMIF数据传输的位数和10Mbps以下的EMIF数据传输速率进行组合,外部存储器接口EMIF的用户空间驱动;(5)基于FFmpeg和EMIF用户空间驱动,将封装后的音视频数据传输至FPGA:(5a)通过FFmpeg音视频框架中的avformat_alloc_context()函数,申请FFmpeg中的AVFormatContext结构体;(5b)通过FFmpeg音视频框架中的av_malloc()函数,在DSP中申请一段内存,并将所申请的内存的指针和大小作为FFmpeg中avio_alloc_context()函数的参数,然后在avio_alloc_context()函数中注册用于读取DSP内存数据的回调函数,同时通过avio_alloc_context()函数申请FFmpeg中的AVIOContext结构体;(5c)将AVFormatContext结构体的AVIOContext类型的指针pb指向AVIOContext结构体,得到指定音视频数据输出位置为DSP内存的AVFormatContext结构体,并通过avformat_open_input()函数打开指定音视频数据输出位置为DSP内存的AVFormatContext结构体,将封装后的音视频数据存储到在DSP中申请的内存中;(5d)在步骤(5b)注册的回调函数内,将DSP内存中存储的封装后的音视频数据循环读取并复制到EMIF用户空间驱动中用于数据传输的虚拟内存地址中,每个循环读取并复制数据的位数与EMIF用户空间驱动中EMIF数据传输的位数相同;(5e)外部存储器接口EMIF按照EMIF用户空间驱动中的EMIF数据传输速率,读取复制到EMIF用户空间驱动中用于数据传输的虚拟内存地址中的封装后的音视频数据,并传输至FPGA。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910273869.6/,转载请声明来源钻瓜专利网。