本发明涉及远程监控领域,特别涉及一种行车记录仪的音视频远程播放方法、存储设备及移动终端。
背景技术:
随着网络技术和移动通信技术的飞速发展,远程视频监控技术已经逐渐趋向成熟,例如目前,在车辆上安装带有4g网络传输功能的货车记录仪后,用户可以使用手机app远程视频监控车辆的行驶状况。但现有的技术存在以下问题:
1、视频解码渲染的过程中耗时非常的严重,视频监控过程中经常出现“慢动作回放”一样的现象;
2、只有视频输出,没有声音输出。用户只能看到监控图像,无法听到声音;
3、音视频播放时,经常会出现音频、视频不同步的问题。
因而现有技术还有待改进和提高。
技术实现要素:
鉴于上述现有技术的不足之处,本发明的目的在于提供一种行车记录仪的音视频远程播放方法、存储设备及移动终端,以解决目前远程视频监控车辆时,视频图像渲染慢、音视频不同步、没有音频输出的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种行车记录仪的音视频远程播放方法,包括如下步骤:
a、接收行车记录仪发送的音视频压缩数据并将其保存至第一缓存区;
b、从第一缓存区中提取音视频压缩数据,并将音频压缩数据解码后保存至第二缓存区,将视频压缩数据解码并转化为rgb图像数据后保存至第三缓存区;
c、从第二缓存区中提取解码后的音频数据并通过扬声器播放,同时从第三缓存区中提取rgb图像数据并将其同步渲染到播放界面中。
所述的行车记录仪的音视频远程播放方法中,所述视频压缩数据为h.264视频压缩数据。
所述的行车记录仪的音视频远程播放方法中,所述音频压缩数据为g711音频压缩数据。
所述的行车记录仪的音视频远程播放方法中,所述步骤b具体包括:
b1、同时从第一缓存区中提取音频压缩数据和视频压缩数据;
b2、将音频压缩数据解码为pcm数据,并将其保存至第二缓存区;将视频压缩数据解码为yuv数据,并将yuv数据转化为rgb数据后保存至第三缓存区。
所述的行车记录仪的音视频远程播放方法中,所述步骤c具体包括:
c1、从第二缓存区中提取音频帧并输出至扬声器播放;
c2、从第三缓存区中提取视频帧,并获取该视频帧的时间戳与正在播放的音频帧的时间戳;
c3、根据该视频帧的时间戳与正在播放的音频帧的时间戳计算出视频帧应该延迟播放的时间;
c4、根据其延迟播放的时间计算出此视频帧应该播放的时间点,并将其与当前时间进行对比,根据比较结果控制该视频帧渲染到播放界面中。
所述的行车记录仪的音视频远程播放方法中,所述步骤c4具体包括:
c41、根据视频帧的延迟播放的时间计算出此视频帧应该播放的时间点;
c42、比较该视频帧应该播放的时间点和当前时间,在当前时间未到该视频帧应该播放的时间点时执行步骤c43,在当前时间到了该视频帧应该播放的时间点时执行步骤c44,在当前时间超过该视频帧应该播放的时间点预设时间时执行步骤c45;
c43、延迟将该视频帧渲染到播放界面中;
c44、将该视频帧同步渲染到播放界面中;
c45、丢弃该视频帧并重新从第三缓存区内提取视频帧。
所述的行车记录仪的音视频远程播放方法中,在一个线程内将视频压缩数据进行解码和转化,在另一个线程内将rgb图像数据渲染到播放界面中。
所述的行车记录仪的音视频远程播放方法中,在一个线程内进行音频压缩数据解码,在另一个线程内进行视频压缩数据解码和转化。
一种存储设备,其存储有多条指令,所述指令适于由处理器加载并执行如上所述的音视频远程播放方法。
一种移动终端,包括:
处理器,用于实现各种指令;以及
存储设备,用于存储多条指令;
所述指令适于由处理器加载并执行如上所述的音视频远程播放方法。
相较于现有技术,本发明提供的行车记录仪的音视频远程播放方法、存储设备及移动终端中,所述方法包括、接收行车记录仪发送的音视频压缩数据并将其保存至第一缓存区;从第一缓存区中提取音视频压缩数据,并将音频压缩数据解码后保存至第二缓存区,将视频压缩数据解码并转化为rgb图像数据后保存至第三缓存区;从第二缓存区中提取解码后的音频数据并通过扬声器播放,同时从第三缓存区中提取rgb图像数据并将其同步渲染到播放界面中。本发明实现了远程视频监控车辆的功能,解决了远程监控时视频图像渲染慢、音视频不同步、没有音频输出的问题,而且通过多线程的方式,缩短了时间,解决了图像渲染时耗时严重而导致的“慢动作播放”问题。
附图说明
图1为本发明提供的行车记录仪的音视频远程播放方法的流程图。
图2为本发明提供的行车记录仪的音视频远程播放方法中,所述步骤s200的具体流程图。
图3为本发明提供的行车记录仪的音视频远程播放方法中,所述步骤s300的具体流程图。
图4为本发明提供的行车记录仪的音视频远程播放方法中,所述步骤s304的具体流程图。
具体实施方式
本发明提供一种行车记录仪的音视频远程播放方法、存储设备及移动终端,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,本发明提供的一种行车记录仪的音视频远程播放方法,包括:
s100、接收行车记录仪发送的音视频压缩数据并将其保存至第一缓存区;
s200、从第一缓存区中提取音视频压缩数据,并将音频压缩数据解码后保存至第二缓存区,将视频压缩数据解码并转化为rgb图像数据后保存至第三缓存区;
s300、从第二缓存区中提取解码后的音频数据并通过扬声器播放,同时从第三缓存区中提取rgb图像数据并将其同步渲染到播放界面中。
具体来说,所述行车记录仪具有远程传输功能,可通过4g、wifi或蓝牙等网络通讯工具将音视频数据传输至其它设备上播放,优选的实施例中,所述步骤s100前还包括:行车记录仪将音视频数据进行压缩,并通过4g网络将音视频压缩数据传输至本发明提供的移动终端上。
所述步骤s100中,所述视频压缩数据为h.264视频压缩数据,所述音频压缩数据为g711音频压缩数据,h.264视频格式和g711音频格式是目前主流的音视频编码标准,行车记录仪通过将其存储的音视频数据编码成h.264视频数据格式和g711音频压缩数据格式,再通过网络传输至本发明提供的移动终端,从而可实现行车记录仪的音视频远程播放,使得用户可以通过安卓或苹果手机app远程视频监控车辆的行驶状况,具体实施时,行车记录仪可将其实时音视频数据编码后发送至用户移动终端,使得用户可实时远程监控车辆的行驶状况。
所述步骤s200中,移动终端在接收到音视频压缩数据后,需首先对缓存的音视频压缩数据进行解码转化后才能将音视频数据在移动终端上播放,在一个具体的实施例中,在一个线程内进行音频压缩数据解码,在另一个线程内进行视频压缩数据解码和转化,可保证音视频数据的同步播放,而且避免音视频数据产生混乱,具体实施时,请参阅图2,所述步骤s200具体包括:
s201、同时从第一缓存区中提取音频压缩数据和视频压缩数据;
s202、将音频压缩数据解码为pcm数据,并将其保存至第二缓存区;将视频压缩数据解码为yuv数据,并将yuv数据转化为rgb数据后保存至第三缓存区。
具体来说,所述步骤s201中,音视频压缩数据同时进行提取,保证提取出来的音频压缩数据和视频压缩数据具有较小的延迟时间。
所述步骤s202中,在提取出音频压缩数据后,移动终端首先对提取的数据进行解码,具体实施时,在第一缓存区的音频缓存队列中提取一帧g711音频压缩数据,并将其解码为pcm数据,pcm数据可直接在移动终端上播放,在将音频压缩数据进行解码为pcm数据后即将pcm数据放入第二缓存区的缓存队列中,在播放该帧数据时从缓存队列中提取数据播放即可。
同时,所述步骤s202中,在提取出视频压缩数据后,移动终端同样首先对视频压缩数据进行解码,具体实施时,在第一缓存区的视频缓存队列中提取一帧h.264视频压缩数据,并将其解码为yuv数据,由于yuv数据无法直接在移动终端上播放,故还需将yuv数据进行转化,优选的实施例中,直接调用libyuv库将yuv数据转化成rgb数据,libyuv库可实现各种yuv数据与rgb数据之间相互转换、旋转及缩放,故可直接调用libyuv库来实现数据转化,在将yuv数据转化成rgb数据后即将rgb数据放入第三缓存区的缓存队列中,在需要播放该帧数据时即从缓存队列中提取,并和音频数据同步播放。
所述步骤s300中,由于人对于声音的分辨要高于视频的分辨,所以本发明采取将视频同步到音频时钟,通过在将解码后的音频数据通过扬声器播放后,同步将rgb图像数据渲染至播放界面,从而解决了音视频不同步、没有音频输出的问题,具体实施时,请参阅图3,所述步骤s300具体包括:
s301、从第二缓存区中提取音频帧并输出至扬声器播放;
s302、从第三缓存区中提取视频帧,并获取该视频帧的时间戳与正在播放的音频帧的时间戳;
s303、根据该视频帧的时间戳与正在播放的音频帧的时间戳计算出视频真应该延迟播放的时间;
s304、根据去延迟播放的时间计算出此视频帧应该播放的时间点,并将其与当前时间进行对比,根据比较结果控制该视频真渲染到播放界面中。
具体来说,所述步骤s301中,从第二缓存区内的缓存队列中提取音频帧输出至扬声器播放即可实现音频播放。
所述步骤s303中,由于时间戳是唯一地标识某一刻的时间,所以通过对比音频帧和视频帧的时间戳可以准确判断出视频帧应该延迟播放的时间,从而进一步保证视频帧可以与音频帧进行同步播放。
所述步骤s304中,由于音频帧的播放时间即为当前时间,所以可根据视频帧应当延迟播放的时间计算视频帧应该播放的时间点,再将其与当前时间比较即可控制该视频帧的播放时间,具体实施时,请参阅图4,所述步骤s304具体包括:
s3041、根据视频帧的延迟播放的时间计算出此视频帧应该播放的时间点;
c3042、比较该视频帧应该播放的时间点和当前时间,在当前时间未到该视频帧应该播放的时间点时执行步骤s3043,在当前时间到了该视频帧应该播放的时间点时执行步骤s3044,在当前时间超过该视频帧应该播放的时间点预设时间时执行步骤s3045;
s3043、延迟将该视频帧渲染到播放界面中;
s3044、将该视频帧同步渲染到播放界面中;
s3045、丢弃该视频帧并重新从第三缓存区内提取视频帧。
具体来说,通过将音频帧的播放时间点与视频帧应该延时播放的时间相加即可得到视频帧的播放时间点,然后通过将其与当前时间比较,即可判断出是否丢弃该视频帧或者该视频帧的播放时间。
本发明通过在音频帧播放后,将音频帧的时间戳和视频帧的时间戳比较得到视频帧的播放时间,进一步根据视频帧的播放时间和当前时间,控制视频帧渲染到播放界面中,从而实现了音视频的同步播放,避免出现音视频不同步、没有音频输出的问题。
请继续参阅图1,进一步来说,本发明提供的行车记录仪的音视频远程播放方法中,在一个线程内将视频压缩数据进行解码和转化,在另一个线程内将rgb图像数据渲染到播放界面中,举例来说,从h.264数据缓存队列中取出一帧数据并将其解码后会得到yuv图像数据,然后调用libyuv库将yuv数据转化成rgb数据,最后将rgb数据存入第三缓存区的缓存队列中后,不会直接将其渲染到播放界面上去,而是再重新提取视频帧进行解码转化,此过程与图像渲染的过程相互独立,即从第三缓存区的缓存队列中取出图像数据渲染到移动终端的界面上的过程与解码过程相互独立,换而言之,一个线程内循环的将视频压缩数据解码和转化后进行缓存,另一个线程内循环的将缓存的转化后的图像数据渲染到播放界面中,如此,图像就会不断的渲染到手机界面上,从而达到视频监控的效果。
本发明通过多线程的方式,一个线程用于视频解码和格式转换,一个线程用于图像渲染,这样的并行操作相比于串行操作来缩短了时间,而且解决了图像渲染时耗时严重而导致的“慢动作播放”问题。
综上所述,本发明实现了远程视频监控车辆的功能,解决了远程监控时视频图像渲染慢、音视频不同步、没有音频输出的问题。
基于上述行车记录仪的音视频远程播放方法,本发明还相应的提供一种存储设备,其存储有多条指令,所述指令适于由处理器加载并执行如上所述的行车记录仪的音视频远程播放方法。
基于上述行车记录仪的音视频远程播放方法,本发明还相应的提供一种移动终端,包括:
处理器,用于实现各种指令;以及
存储设备,用于存储多条指令;所述指令适于由处理器加载并执行如如所述的行车记录仪的音视频远程播放方法。
由于上文已对行车记录仪的音视频远程播放方法进行详细描述,在此不再赘述。
综上所述,本发明实现了远程视频监控车辆的功能,解决了远程监控时视频图像渲染慢、音视频不同步、没有音频输出的问题,而且通过多线程的方式,缩短了时间,解决了图像渲染时耗时严重而导致的“慢动作播放”问题。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。