本发明涉及视频数据处理技术领域,尤其涉及一种视频打点和记录epg信息的方法。
背景技术:
视频直播领域,往往需要在直播的内容中显示epg信息,或者在节目过后进行epg整段节目的截取存储,转化为点播节目。
目前的做法,基本都是根据视频的时间点进行打点处理,根据时间点进行截取。这种老的方式的弊端在于epg的展示并不精准,尤其是视频内容在做了裁剪处理后,由于视频时长发生了变化,已经打好点的epg信息需要全部重新打点处理;还有个弊端是在根据打点信息进行视频节目裁剪的时候,准确度不够精确,往往会出现节目多几秒钟或者少几秒钟的情况,对节目转点播的质量造成影响。
技术实现要素:
目前的点播节目裁剪多用时间点打点处理的传统方式,由于误差导致裁剪出的视频精度不够高,容易出现时间的不够准确。另一方面,该方法导致视频节目的epg展示不够精准,尤其是在视频时长发生变化后,epg信息需要再次处理,造成工作冗余。
为解决此类问题,本发明提出以下方案。
一种视频打点和记录epg信息的方法,包括以下步骤:
将需要打入视频的epg信息编码为通用json字符串,所述通用json字符串包含type和name两个字段,type表示视频开始和结束,name表示epg名字,将所述通用json字符串转化为二进制码;
人工观看视频寻找到要嵌入epg信息的原始帧,所述原始帧为i帧、p帧或b帧其中任一,拿出原始帧中图像格式为yuv420的图像,取出其中的y值图像;
遍历y值图像得到y值分布直方图,记录出现次数最多的y值为ymax;
将y值图像中所有大于ymax的像素点的y值加1;
按照图像扫描顺序依次将转化好的所述二进制码写入y值图像,二进制0记入ymax,二进制1记入ymax+1,记入完毕后将y值图像合并到原始帧;
裁剪视频时,播放器播放视频读取原始帧,按照图像扫描顺序扫描,计算ymax,顺序读取ymax和ymax+1这2个值的像素点,当读取到ymax时记0,读取到ymax+1时记1,按扫描顺序输出0和1的二进制码;
将该二进制码按照8位1个字节转换字节码,再转换为包含epg信息的字符串;
当转换得到的type字段表示为结束时,完成裁剪。
进一步的,type=0表示视频开始,type=1表示视频结束。
进一步的,所述通用json字符串可扩展,但总字节长度
本发明提出的方法将视频信息记录在图像中,能够在y值的变化几乎不影响视频视觉效果的前提下,依据记录的epg信息得到视频节目的精确裁剪,且即使节目中有被删减的违规片段,也不影响节目的精确度和epg信息的获取。
具体实施方式
为使得本发明的技术方案、优点更加清楚,下面将结合实施例,对本发明提出的一种视频打点和记录epg信息的方法作进一步阐释。
s1.准备数据:
将需要打入视频的epg信息编码为通用json字符串,json字符串包含type和name两个字段,type表示视频开始和结束,name表示epg名字,该json字符串包含的字段可扩展,但不宜过长,因为图像存储的信息量是有限的,应小于等于bmax/8向下取整的字节数,bmax为y值最大分布数ymax的字节数;
将所述通用json字符串转化为二进制码,例如视频信息的json字符串为{"type":0,"name":"天龙八部(23)"},其对应二进制码为01111011001000100111010001111001011100000110010100100010001110100011000000101100001000100110111001100001011011010110010100100010001110100010001010110010010100110011111100110011010001011010111001000011101000001010000011001000110011001010010010001001111101,32个8位的二进制码,共256位。
s2.计算灰度图:
人工观看视频寻找到要嵌入信息的i帧,找到i帧后,取出i帧图像,拿到yuv420的原始图像,并取出区中的y部分,得到y值图像;
遍历y值图像得到y值分布直方图,记录出现次数最多的y值为ymax,该步骤的目的是尽可能多的存储数据;
将y值图像中所有大于ymax的像素点的y值加1。
s3.存储二进制数据:
按照图像扫描顺序(从左上角开始从左到右,从上到下扫描)依次将转化好的二进制码写入y值图像,二进制0记入ymax,二进制1记入ymax+1,记入完毕后将y值图像合并到原始的i帧。
s4.读取二进制数据:
裁剪视频时,播放器播放视频读取i帧,按照图像扫描顺序扫描,计算ymax,顺序读取ymax和ymax+1这2个值的像素点,当读取到ymax时记0,读取到ymax+1时记1,按扫描顺序输出0和1的二进制码;
将该二进制码按照8位1个字节转换字节码,再转换为包含epg信息的字符串;
当转换得到的type字段为1时,完成裁剪。
如果读取出来的信息不能转换为json字符串,那么证明该i帧图像没有写入任何信息。
以上实施例仅为本发明的示范性实施例,不用于限制本发明的范围,本发明的范围由权利要求书限定。任何本领域技术人员做出的同等替换或简单修改也视为落在本发明的实质保护范围内。
1.一种视频打点和记录epg信息的方法,其特征在于,包括以下步骤:
将需要打入视频的epg信息编码为通用json字符串,所述通用json字符串包含type和name两个字段,type表示视频开始和结束,name表示epg名字,将所述通用json字符串转化为二进制码;
人工观看视频寻找到要嵌入epg信息的原始帧,所述原始帧为i帧、p帧或b帧其中任一,拿出原始帧中图像格式为yuv420的图像,取出其中的y值图像;
遍历y值图像得到y值分布直方图,记录出现次数最多的y值为ymax;
将y值图像中所有大于ymax的像素点的y值加1;
按照图像扫描顺序依次将转化好的所述二进制码写入y值图像,二进制0记入ymax,二进制1记入ymax+1,记入完毕后将y值图像合并到原始帧;
裁剪视频时,播放器播放视频读取原始帧,按照图像扫描顺序扫描,计算ymax,顺序读取ymax和ymax+1这2个值的像素点,当读取到ymax时记0,读取到ymax+1时记1,按扫描顺序输出0和1的二进制码;
将该二进制码按照8位1个字节转换字节码,再转换为包含epg信息的字符串;
当转换得到的type字段表示为结束时,完成裁剪。
2.如权利要求1所述的视频打点和记录epg信息的方法,其特征在于,type=0表示视频开始,type=1表示视频结束。
3.如权利要求1或2所述的视频打点和记录epg信息的方法,其特征在于,所述通用json字符串可扩展,但总字节长度