这是一个突发奇想(没有滥用视频网站的意思,别误会了)。
从技术上讲应该是可行的,注意这里的要求是“可播放”(单纯改后缀这种不算)。
我的想法大概是可以每帧都播放一个类似二维码的东西,然后解码的时候分别提取所有帧并合并。
或者有其他方案吗?是否有已经实现这种功能的软件 / 工具呢?
1
msg7086 2020-05-24 09:09:08 +08:00
你是说嵌在容器里还是嵌在流里还是嵌在编码的帧里还是嵌在画面里?
|
2
tangkaichuan 2020-05-24 09:16:55 +08:00 via Android
目前不是已经可以把文件加到图片里了吗?将图片连接起来不就是视频🤔
|
3
churchmice 2020-05-24 09:18:57 +08:00 via Android
早就有了,老弟,去研究下数字水印防盗版
|
4
gzlock 2020-05-24 09:32:07 +08:00 via iPhone
视频网站二次压缩视频会破坏你的数据吧?
|
5
reus 2020-05-24 09:48:02 +08:00
其实视频画面,就等于你说的“二维码”,只不过视频画面可以直接被人脑解码,而二维码需要机器转码
如果需要对抗二次压缩,那需要比较多的冗余数据,就是显示的二维码码点要比较大,不然一压就变了,解码开销也更大 |
6
xml123 2020-05-24 10:36:00 +08:00
二维码的信息冗余也太大了,一个像素 RGB 可以和 3 个 bit 的数据一一对应,你约定一个视频的尺寸,然后依次转换成像素就行了,一帧写满了就写下一帧。如果要抗压缩的话,颜色的种类减少一些,色块取大一些就行了。类似的成品我记得有过,不过是把二进制数据打印成图片再用扫描仪还原;动态二维码的好像也有。
|
7
systemcall 2020-05-24 14:29:42 +08:00 via Android
@xml123 视频编码一般是 yuv,在线视频网站应该是 yuv420 。二维码每个像素只用到了 2 个状态,而实际上如果是位图的话有 16.7M 的状态,单纯的二维码编码效率很低
我觉得应该可以考虑直接想办法映射到 yuv420,直接拿现成的二维码改应该可行,反正二维码本身可以有一定的冗余,用自带的冗余功能来避免编码对信息的干扰应该是足够的 |
8
Telegram 2020-05-24 14:59:05 +08:00
|
9
Telegram 2020-05-24 15:03:49 +08:00
|
10
Telegram 2020-05-24 15:16:20 +08:00
在 Issues 中看到另外 1 个叫 txqr 的项目,貌似更成熟一些:
Please take a look at TxQR, which is pretty promising https://github.com/divan/txqr https://github.com/divan/txqr-reader https://github.com/ThePlasmaRailgun/TXQR-Android ![111]( https://github.com/divan/txqr/raw/master/docs/demo.gif) |
11
qieqie 2020-05-24 15:17:16 +08:00 via Android
如果你要的不是那种可以防再次编码的数字水印,h264/hevc 标准中规定的 SEI (Supplemental Enhancement Information)就是给你写入自定义信息的。
|
12
Telegram 2020-05-24 15:23:43 +08:00
|
13
msg7086 2020-05-24 16:26:01 +08:00
@Telegram 我不确定楼主是想要这个效果还是只知道这个效果。毕竟各个层面上都有办法植入数据,像素上植入是植入效率最低的,只有在要求鲁棒性的环境下才适用。如果只是要插入普通的自定义信息的话,流层面上像楼上说的 SEI 就是用来干这个的。容器上也可以写,像是 MKV 和 MP4 都可以加入自定义元素。
|
14
zingl 2020-05-24 18:18:54 +08:00
LZ 的意思是把二进制文件嵌入到媒体文件进行隐匿分发
虽然 LZ 的标题写得不咋地,内容还是讲得比较清楚的啊 |
15
msg7086 2020-05-25 02:07:04 +08:00
@zingl 帖子内容只是想法,不是目的。
我现在解读问题的时候,常常不得不考虑 X-Y 问题的可能性。 我现在看到的目的是 1) 二进制数据编码进视频文件; 2) 视频文件可播放; 3) 编码的数据可从文件中读取。 只考虑这 3 点的话楼主内容里写的想法不是最合适的做法。 所以我第一条的回复就是希望楼主明确自己的目的,否则下面一群人就只能漫无目的地回复。 |
16
jifengg 2020-05-25 17:41:21 +08:00
如果不考虑被平台重新转码的话,直接 base64 存到字幕流哈。
如果考虑被转码的话,应该只能从视频画面本身着手了吧。 |
17
neteroster OP |