基于FLV格式视频的隐蔽通信系统

时间:2022-09-18 07:46:54

基于FLV格式视频的隐蔽通信系统

摘 要:FLV格式视频是当今互联网上最为流行的流媒体文件格式,兼容多种视频编码格式并对其封装,针对这种网络FLV格式视频的认证技术,信息隐藏技术应运而生,设计和实现高安全性与强鲁棒性的视频隐蔽通信系统,保证特殊环境下秘密信息的隐蔽传递,是一项崭新而有意义的研究。因而解析了FLV格式的网络视频文件,研究其作为隐蔽通信载体的可能性和技术难点,并提出了一种基于H.264编码的能够抵抗如新浪播客网站各种处理操作的鲁棒视频隐写算法,构建了一个完整的网络视频隐蔽通信系统。

关键词:

中图分类号: TP391;TN911.73 文献标识码: A 文章编号:2095-2163(2011)03-0052-03

Hiding Communication System based on FLV Video File

JIA Bingqiang1, DOU Zhenjia1, SONG Xianhua1,2, NIU Xiamu

Abstract: Recently,FLV file has become the most popular video format in video-hosting websites, and it is compatible with many video coding and encapsulates them. Aiming to it, video authentication technique and information hiding technique develop quickly, therefore, it is an innovative research to design and achieve high-security and strong-robustness video hiding communication system based on FLV in some special environments. In this paper, FLV video file is analyzed in detail, the possibility and technique difficulty as a cover file in steganography is deliberated. Moreover, a video steganography algorithm based on H.264 coding is designed. Experimental results show that it is robust to processing from websites like . Finally, a complete website video hiding communication system is constructed.

Key words:

0 引言

视频是多媒体信息的重要载体之一。随着Web2.0时代的全面来临,在这个充分发挥自我个性的年代,视频、播客等网站如雨后春笋般兴起,新的网络战役一触即发[1]。随之而来的视频版权保护、视频完整性及真实性认证等问题也日益突显,视频信息隐藏技术是解决上述问题的有效途径。FLV(Flash Video)格式的视频是目前网络上流行的流媒体文件格式,由于其体积小、CPU占有率低、视频质量良好、播放方便等特点,FLV格式已经成为主流的视频封装格式[2]。但是FLV格式不同于传统意义上的视频编码格式,兼容了多种视频编码格式并对其进行封装,因此,传统的视频隐写算法不能直接应用于FLV视频中,因为在封装过程中往往破坏秘密信息。此外,出于对存储空间和网络带宽的考虑,几乎所有视频网站都会对用户上传的视频进行处理,改变视频的编码算法、帧率、比特率及分辨率,以提高用户观看的流畅程度。同时,各视频网站为了提高知名度,都会在转码后的视频画面左上角(或右上角)添加网站的LOGO,这也对原始的视频数据造成了破坏。因此,应用传统的视频隐写算法之前还需要一定的预处理和码流提取,基于FLV格式的视频隐蔽通信技术还需要进一步的深入研究。

解析FLV格式的视频内容以及构建基于此的隐蔽通信系统是一项崭新的和有重要意义的研究。因此,本文主要研究针对网络流行的FLV格式视频文件的隐蔽通信系统关键技术。

1 FLV格式文件及视频网站解析

1.1 FLV格式文件解析

一个FLV文件是一个二进制文件,由文件头(FLV header)和文件体(FLV File body)组成。实际上,FLV文件格式只是一种封装格式,而不是像MPG、RMVB那样的编码格式。FLV将压缩编码后的视频和音频数据组合封装起来,形成一个完整的视频文件。可理解为,在一个FLV文件中有非常多的分成小段的视频或/与音频,播放器根据其中的标志信息读出一段视频或/与音频,就能播放一段。

如图1所示,FLV文件都具有相同的文件头格式,文件体则由两种成分交替构成,分别为:指示前一个标签段大小(单位:字节)的变量(Previous Tag Size)和标签段(Tag),二者是成对出现的。Previous Tag Size紧跟在每个标签之后,是一个UI32类型的数值,用4个字节表示前一个标签的大小。文件头之后紧跟着的指示标签大小的参数(图1中的Previous Tag Size #0)始终值为0,因为前面没有标签存在。标签是FLV文件中的主要数据区域,作为一个结构体,其中包含了结构信息以及数据信息等[3]。

1.2 视频网站测试及分析

国内当前流行的在线视频共享网站主要有新浪播客、优酷网、土豆网、56网、六间房等。一般情况下,用户把视频上传到这些视频共享网站之后,网站都会进行一些各自的处理,例如转换为特定的格式、二次压缩、改变分辨率码率、添加网站标识的LOGO水印等等。为了保证伪装视频中嵌入的信息在上传之后不被破坏,即能承受网站的处理过程,就需要了解网站的处理手段。

以新浪播客为例,利用工具FFmpeg和UltraEdit对影响视频质量的几个主要指标:视频格式、编码方式、帧率、码率、分辨率和文件大小进行了测试分析,可以得到如下结论:

(1)新浪播客对于用户上传的视频多数采用FLV方式进行封装。调研中也发现,有极少数视频被封装成了F4V格式,因为F4V是比FLV更新、视频封装效果更好的一种封装方式,这也说明了新浪以及一些视频网站对视频封装方式的一种发展趋势。

(2)新浪播客主要以H.263和H.264/AVC作为视频的编码方式,极少数的视频为VP6的编码方式。鉴于H.264的优势,后面的算法设计考虑基于H.264做信息隐藏算法的设计和实现。

(3)帧率方面,H.264编码方式的视频帧率较之其他编码方式稳定:约15.000fps,这也为选择H.264做隐写增加了可靠性。

(4)调研发现,新浪播客对视频的码率控制在500kbps左右,大于这个码率的视频,将被网站进行重新编码。

基于上述调研结果,系统算法设计为在H.264编码上作隐蔽通信,并封装为满足网站要求的、码率限制内的FLV 格式视频进行上传,进而达到秘密信息安全准确的传递的目的。

2 基于网络FLV的视频隐写

H.264/AVC 是最新的视频压缩编码标准,具有高的编码效率和网络友好性,这些优异的性能使其在数字电视广播、视频实时通信、网络视频流媒体传递以及多媒体短信等领域发挥重要作用[4-6]。

本文提出基于H.2矢量的信息隐藏算法。具体的思想为:使用一部分的运动矢量进行隐秘信息嵌入,用剩余的运动矢量来对运动矢量的统计特征进行修复,使隐写分析算法所利用的统计特征与隐秘信息嵌入之前的值相差微小,从而有效抵抗基于运动矢量隐写分析检测。

2.1 秘密信息的嵌入过程

设N为帧间编码宏块在视频帧中的序号。

(1)在N%3=0的帧间编码宏块中,对运动矢量预测误差的水平垂直分量同时进行隐秘信息嵌入。

设dx为运动矢量预测误差的水平分量,dy为运动矢量预测误差的垂直分量,嵌入规则如下:

①如果隐秘信息“00”被嵌入,则在运动估计的1/4像素搜索过程中寻找使得dx为偶数,同时使得dy为偶数的点作为最终的搜索点;

②如果隐秘信息“01”被嵌入,则在运动估计的1/4像素搜索过程中寻找使得dx为偶数,同时使得dy为奇数的点作为最终的搜索点;

③如果隐秘信息“10”被嵌入,则在运动估计的1/4像素搜索过程中寻找使得dx为奇数,同时使得dy为偶数的点作为最终的搜索点;

④如果隐秘信息“11”被嵌入,则在运动估计的1/4像素搜索过程中寻找使得dx为奇数,同时使得dy为奇数的点作为最终的搜索点;

(2)在N%3=1的帧间编码宏块中,对运动矢量水平分量及垂直分量进行空间域PMF修复。

(3)在N%3=2的帧间编码宏块中,对运动矢量水平分量及垂直分量进行时间域PMF修复。

2.2 隐蔽通信系统

隐蔽通信系统分为发送端和接收端两部分,系统的设计采用模块化的方法,主要有秘密信息加密模块、秘密信息嵌入模块、视频格式转码模块、秘密信息提取模块和秘密信息解密模块。

用户利用发送端系统将秘密信息嵌入到载体视频中,并利用FFmpeg软件将含有秘密信息的载体视频转化成可上传到网站上的FLV视频格式。发送端系统主要有三个模块组成:秘密信息加密模块、秘密信息嵌入模块和视频格式转码模块,各模块之间的关系如图2所示。

(1)秘密信息加密模块

显然,对秘密信息进行加密可以进一步提高信息的安全性。由于视频隐写系统主要是针对点对点的隐秘通信,并不涉及任何像非对称加密那样可以对外公开的成分,系统很自然地选择了对称加密算法。

(2)秘密信息嵌入模块

发送端隐秘信息嵌入模块是系统的核心之一。前面已经对视频隐写算法进行了详细叙述。该模块在YUV视频中嵌入隐秘信息并生成.264格式的中间文件,作为FFmpeg的输入。

(3)视频格式转码模块

如前文所示,系统使用工具FFmpeg将.264文件封装为FLV文件,这只需要一个简单的命令,重要的是FFmpeg在封装的过程中不进行重新编解码。

用户首先从特定网站下载含有秘密信息的视频,然后利用接收端系统对视频进行格式转换、秘密信息提取和秘密信息解密并对生成的秘密信息文件进行存储。接收端系统也有三个模块组成:视频格式转码模块、秘密信息提取模块和秘密信息解密模块,各模块之间的关系如图3所示。

(1)视频格式转码模块

视频格式转码模块将从视频网站上下载的含有秘密信息的.flv格式的视频文件转换成含有隐密信息的.264格式的视频文件。系统使用工具FFmpeg将.flv文件转换为.264文件,这也只需要一个简单的命令,FFmpeg在转换的过程中不改变视频数。

(2)秘密信息提取模块

接收端隐秘信息提取模块也是系统的核心之一,前面也已经对视频隐写算法进行了详细叙述,故不再赘述。该模块实现的功能是将含有秘密信息的264格式的视频文件作为输入,经秘密信息提取模块将秘密信息提取出来。

(3)秘密信息解密模块

接收端秘密信息解密模块与发送端秘密信息加密模块是对应的,也是采用对应的解密算法,需用户手动输入密钥对加密信息进行解密。

3 实验

将随机从互联网上搜集的YUV格式的视频按视频大小分类,作为载体视频,其中视频的播放时间最长不超过六分钟(经测试统计分析出的结果),因为几乎所有视频网站都会对过长视频进行分割,这就会导致嵌入的秘密信息部分或全部丢失。

将测试要用的测试秘密信息也按大小进行分类,分别将秘密信息嵌入到各载体视频中。对每一个载体视频,分别利用视频嵌入软件将秘密信息嵌入,并将含有秘密信息的视频转换成可以上传到视频网站的FLV视频格式,这里上传到新浪播客,然后再下载(可以利用维棠软件下载)该上传的视频,对秘密信息进行提取比较,分析测试软件的各项性能指标。

将本文设计的系统应用于这种实际网络视频环境中,能够达到秘密信息安全准确传递的目的,并且隐藏算法能够抵抗一般的隐写分析,保证了系统的鲁棒性、安全性和准确性。

通过本文采用的隐蔽通信方案和现有的视频隐写软件如格式级视频密写软件Hider, Max File Encryption和内容级视频密写软件MSU StegoVideo进行比较,在视频文件中嵌入隐藏信息,经变换后尝试提取信息,测试是否能够成功获取隐秘信息,以考察软件抗击网站视频转码变换的能力。实验表明,本文设计的系统具有更好的鲁棒性和准确性,能够抵抗视频网站对上传视频的转码和压缩,而已有的软件不能正确提出隐密信息,甚至无法识别文件是否进行过隐写,具体结果见表1。

4 结束语

本文研究了基于互联网上流行的视频格式FLV做隐蔽通信载体的可能性和可行方案。实验表明,本文设计的隐蔽通信系统具有较高的安全性和很强的鲁棒性,同时具有较强的实用性,使用简单,用户只需对要嵌入的秘密信息文档和视频载体进行选择,输入对秘密信息的加密密钥,就可生成含秘密信息的可以上传到视频网站的.flv格式的视频进行版权保护或隐蔽通信。

由于各个视频分享网站对视频的处理操作并不相同,因此发展能够抵抗多数网站处理操作、具有更强鲁棒性的基于FLV格式的视频隐写系统是未来需要进一步研究的问题。

参考文献:

[1] FLV视频格式[N/OL]. [2011-06-28].http://baike.baidu.com/vi-

ew/364757.htm.

[2] 王奎澎,刘建辉. Flv文件格式及其嵌入式应用[J]. 计算机系统

与应用,2010,19(3):190-193.

[3] FLV文件格式的解析[N/OL]. [2011-06-28]. http://wenku.baidu

.com/view/f919978102d276a200292e2f.html.

[4] 胡洋,张春田,苏育挺. 基于H.264/AVC的视频信息隐藏算法

[J]. 电子学报,2008,36(4):690-694.

[5] MOZO A J,OBIEN M E,RIGOR C J,et al. Video steganogra-

phy using flash video(FLV)[C]// IEEE Conference on Internatio-

nal Instrumentation and Measurement Technology, 2009:822-827.

[6] 王让定,朱洪留,徐达文. 基于编码模式的H.264/AVC视频信

息隐藏算法[J]. 光电工程,2010,37(5):144-150.

上一篇:浅谈如何培养学生学习语文有效的学习策略 下一篇:频繁子图挖掘算法gSpan的设计与实现