映像の場所を入れ換えて暗号化する


ネット上で漫画を読めるサービスで画像のリンクを開いてみると、本来の映像の位置からバラバラに配置されている画像を見られる。これを ffmpeg の swaprect フィルタを使って映像をバラバラに配置して同じ効果が得られる。

映像の2カ所を入れ替える swaprect

映像をたくさん分割すればするほど組み合わせが複雑になるが、フィルタチェーンの文字数制限があるので無制限に分割できるわけではない。バラバラに分割して暗号化された映像を元に戻すには同じフィルタチェーンを逆順に設定すれば元の映像に戻すことができる。swaprect フィルタの他にも swapuv で UV を入れ換えたり、hflip で左右反転することでより難読化することができる。swaprect フィルタを多用してもそれほど負荷は上がらないので気にする必要は無いが、映像が難読化され圧縮しにくい映像になり容量が増える。

smptehdbars ソースの元映像


6×6 の暗号例その1
ffplay -i input -vf swaprect=w/6:h/6:2*w/3:h/3,swaprect=w/6:h/6:5*w/6:h/6,swaprect=w/6:h/6:5*w/6:5*h/6,swaprect=w/6:h/6:2*w/3:h/6,swaprect=w/6:h/6:w/6:h/6,swaprect=w/6:h/6:w/3:5*h/6,swaprect=w/6:h/6:w/2:h/2,swaprect=w/6:h/6:w/6:0,swaprect=w/6:h/6:w/3:h/6,swaprect=w/6:h/6:0:0,swaprect=w/6:h/6:2*w/3:2*h/3,swaprect=w/6:h/6:w/2:5*h/6,swaprect=w/6:h/6:5*w/6:h/3,swaprect=w/6:h/6:w/2:h/6,swaprect=w/6:h/6:0:5*h/6,swaprect=w/6:h/6:w/6:2*h/3,swaprect=w/6:h/6:2*w/3:h/2,swaprect=w/6:h/6:w/6:5*h/6,swaprect=w/6:h/6:5*w/6:2*h/3,swaprect=w/6:h/6:2*w/3:0,swaprect=w/6:h/6:5*w/6:0,swaprect=w/6:h/6:5*w/6:h/2,swaprect=w/6:h/6:0:h/6,swaprect=w/6:h/6:w/2:0,swaprect=w/6:h/6:w/3:h/3,swaprect=w/6:h/6:w/6:h/3,swaprect=w/6:h/6:w/6:h/2,swaprect=w/6:h/6:w/2:h/3,swaprect=w/6:h/6:w/3:0,swaprect=w/6:h/6:0:h/2,swaprect=w/6:h/6:w/3:h/2,swaprect=w/6:h/6:w/3:2*h/3,swaprect=w/6:h/6:w/2:2*h/3,swaprect=w/6:h/6:0:2*h/3,swaprect=w/6:h/6:2*w/3:5*h/6,swaprect=w/6:h/6:0:h/3

smptehdbars ソースを難読化した映像


6×6 の復号例その1
ffplay -i input -vf swaprect=w/6:h/6:0:h/3,swaprect=w/6:h/6:2*w/3:5*h/6,swaprect=w/6:h/6:0:2*h/3,swaprect=w/6:h/6:w/2:2*h/3,swaprect=w/6:h/6:w/3:2*h/3,swaprect=w/6:h/6:w/3:h/2,swaprect=w/6:h/6:0:h/2,swaprect=w/6:h/6:w/3:0,swaprect=w/6:h/6:w/2:h/3,swaprect=w/6:h/6:w/6:h/2,swaprect=w/6:h/6:w/6:h/3,swaprect=w/6:h/6:w/3:h/3,swaprect=w/6:h/6:w/2:0,swaprect=w/6:h/6:0:h/6,swaprect=w/6:h/6:5*w/6:h/2,swaprect=w/6:h/6:5*w/6:0,swaprect=w/6:h/6:2*w/3:0,swaprect=w/6:h/6:5*w/6:2*h/3,swaprect=w/6:h/6:w/6:5*h/6,swaprect=w/6:h/6:2*w/3:h/2,swaprect=w/6:h/6:w/6:2*h/3,swaprect=w/6:h/6:0:5*h/6,swaprect=w/6:h/6:w/2:h/6,swaprect=w/6:h/6:5*w/6:h/3,swaprect=w/6:h/6:w/2:5*h/6,swaprect=w/6:h/6:2*w/3:2*h/3,swaprect=w/6:h/6:0:0,swaprect=w/6:h/6:w/3:h/6,swaprect=w/6:h/6:w/6:0,swaprect=w/6:h/6:w/2:h/2,swaprect=w/6:h/6:w/3:5*h/6,swaprect=w/6:h/6:w/6:h/6,swaprect=w/6:h/6:2*w/3:h/6,swaprect=w/6:h/6:5*w/6:5*h/6,swaprect=w/6:h/6:5*w/6:h/6,swaprect=w/6:h/6:2*w/3:h/3

6×6 の暗号例その2、10×6 と 16×9 は文字数が多いので zip に圧縮して配布

コメントを残す

メールアドレスが公開されることはありません。