前几天发的这个帖子:http://www.oschina.net/question/1770418_2191340不了解可以先看这里
一个客户,说要给视频文件加上一个只能自己识别的标记,目的就是想让视频只能自家的播放器播放,像暴风啊,迅雷的不能看。像是把视频加密这样子吧,背景就这样了。
有好几同行的都说不用逐帧加密,不用修改视频的原数据,加个自定义的文件头就行,我一追问怎么加,都不吭声了。请问一下,有没有真正了解或都做过的朋友,能够指导一下,或者帮我写个Demo,有偿100。
我不需要加减乘除,加个1,减个1就行,我想知道在哪里加,用那个函数,如果就是说“加密的时候加XX”,”解密的时候减XX“,这道理我懂,但我不会操作。。谁来写个示例啊?
像这位朋友这样说了,我很感谢他,但因为我对FFMPEG不了解,说了我也不会啊
没做过ffmpeg,不过说的这个做法是通用的,创建视频文件的时候在首部随便加几个字节,然后解码跳过或者读取并验证,就像文件中的magic number######
楼主 你解决这个问题了么? 我也有需求 我出200大洋 你能否给我解决下
######没有解决。我把整个视频的二进制数据进行位运算,然后播放的时候进行反运算,把数据释放在内存里再读的。上面的方法说起来好简单,但根本没有人能说出来怎么做,都是在说。在二进制读取的时候的确可以读出文件头,但不能对其进行修改。######插一句,这种位运算的方式我不是很赞成,因为会变动视频原本文件的内容,容易出问题,其实大家说的文件头增加一点东西的方式应该是比较好理解的,既然你的视频文件是属于你自己的,那么在编码之后封装成文件的时候,自定义一个文件头,例如,wav格式的文件,其文件头如下:
标志符(RIFF) |
余下所有数据的长度 |
格式类型("WAVE") |
"fmt" |
PCMWAVEFORMAT的长度 |
PCMWAVEFORMAT |
"data" |
声音数据大小 |
声音数据 |
那么,你是不是可以自己增加一个呢?比如,在标志符后面新增一项,假设为companyname,这样,你在解码的时候,你自己的解码器自然能识别,并将这一项检出来,可是别人的解码器,则会将你的这一项,以为是“余下所有数据的长度”,这样自然就出现解码失败了;
这样做不会改变原始文件,只是对它的封装格式做了变动,应该比较简单且安全吧!
没做过ffmpeg,不过说的这个做法是通用的,创建视频文件的时候在首部随便加几个字节,然后解码跳过或者读取并验证,就像文件中的magic number######
楼主 你解决这个问题了么? 我也有需求 我出200大洋 你能否给我解决下
######没有解决。我把整个视频的二进制数据进行位运算,然后播放的时候进行反运算,把数据释放在内存里再读的。上面的方法说起来好简单,但根本没有人能说出来怎么做,都是在说。在二进制读取的时候的确可以读出文件头,但不能对其进行修改。######插一句,这种位运算的方式我不是很赞成,因为会变动视频原本文件的内容,容易出问题,其实大家说的文件头增加一点东西的方式应该是比较好理解的,既然你的视频文件是属于你自己的,那么在编码之后封装成文件的时候,自定义一个文件头,例如,wav格式的文件,其文件头如下:
标志符(RIFF) |
余下所有数据的长度 |
格式类型("WAVE") |
"fmt" |
PCMWAVEFORMAT的长度 |
PCMWAVEFORMAT |
"data" |
声音数据大小 |
声音数据 |
那么,你是不是可以自己增加一个呢?比如,在标志符后面新增一项,假设为companyname,这样,你在解码的时候,你自己的解码器自然能识别,并将这一项检出来,可是别人的解码器,则会将你的这一项,以为是“余下所有数据的长度”,这样自然就出现解码失败了;
这样做不会改变原始文件,只是对它的封装格式做了变动,应该比较简单且安全吧!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。