admin のすべての投稿

ffmpeg 3.2 リリース

追記 2016年12月6日
3.2.2 がリリースされた。
git.videolan.org Git – ffmpeg.git/shortlog
git.videolan.org Git – ffmpeg.git/blobdiff – Changelog

追記 2016年11月27日
3.2.1 がリリースされた。
git.videolan.org Git – ffmpeg.git/shortlog
git.videolan.org Git – ffmpeg.git/blobdiff – Changelog

2016年10月28日、ffmpeg 3.2 Hypatia(ヒュパティア)がリリースされた。3.2 は 3.1 からのメジャーアップデートでこれまでに取り込まれたコミットのすべてが入っている。

前回更新記事:ffmpeg 3.1 リリース
続きを読む ffmpeg 3.2 リリース

ニコ生の新配信(β)と録画方法について

2017年1月16日に公開された公式の新配信 HLS 形式はこちら
公式ニコ生のHTML5配信(β)の録画方法について

11月1日に公開された新配信(β)以下新配信について。「ユーザー番組の配信ビットレートが1Mbps」になって高画質配信ができると思ったのもつかの間、記事をよく読むと、「時間帯と視聴ユーザーの会員状態によってビットレートが異なります」とあるように送信映像が視聴者にそのまま送られずに再エンコードされることが分かり、試す前からいやな予感がする告知であった。

ニコニコ生放送「新配信(β)」の提供を開始しました‐ニコニコインフォ
【11/4更新】「新配信(β)」でお困りの方へ‐ニコニコインフォ
検索結果:新配信 | ニコニコヘルプ
続きを読む ニコ生の新配信(β)と録画方法について

ユーフォ2期OP冒頭部分のモノクロ部分だけ黒にする

ユーフォ2期,1話から5話までのOP冒頭部分のモノクロ部分だけ黒にする。モノクロ部分の UV が 128 になるのを利用してこの部分以外をマスクして真っ黒にする。

コマンド例
ffmpeg -i video.ts -vf bwdif=0:-1:1,decimate,removelogo=logo.bmp,split=3[0][1][2];[2]format=yuv444p,avgblur=3:2,shuffleplanes=1:1:1,lutyuv=between(val\,120\,135)\*255:val:val[2a];[1]lutyuv=0:val:val[1a];[0]format=yuvj420p[0a];[0a][1a][2a]maskedmerge=0x7,format=yuv420p -acodec copy output.mp4
続きを読む ユーフォ2期OP冒頭部分のモノクロ部分だけ黒にする

N を使わない新しいニコ生用の rtmpdump と ffmpeg(librtmp)

ニコ生の録画と配信方法の歴史 にあるように2013年11月14日から現在の仕様である、ユーザー生放送の生放送とタイムシフト、チャンネル生放送の生放送には -N オプションが必要で、ユーザー生放送のタイムシフトの保存には放送時間分だけ時間がかかっている。この仕様に対応した -N オプションではなく新しいオプションも備えて機能も拡大した rtmpdump のテストバージョンを公開している。テストバージョンは少し前から公開しているが、使い方を整理したり、新しいオプションのバグ取りになどに時間を取られ今日の記事公開となった。
続きを読む N を使わない新しいニコ生用の rtmpdump と ffmpeg(librtmp)

前後フレームの差分で動いた部分だけマスクする モーションマスク

前後フレームの YUV 差分をマスクしてフィルタを当てなくするモーションマスクの使い方。マスクするチャンネルは Y だけと、YUV のすべてを指定でき、マスクを反転することもできる。使うフィルタは tblend で前後フレームを1入力で取り込み、maskedmerge で1,2入力の割合を決めている。

前後フレームの差分をブレンドする tblend
マスクして2入力を合わせる maskedmerge
続きを読む 前後フレームの差分で動いた部分だけマスクする モーションマスク

非局所平均のデノイザ nlmeans

ffmpeg 3.2 でリリース予定のビデオフィルタ。ffmpeg のフィルタの中でかなり処理が重たい部類に入るエッジ保護のデノイザ nlmeans フィルタの使い方。なぜこれほどまでに重たいかというとデノイズする部分を映像内容によって異なる処理をするために重たくなるから。詳しい処理内容は「non-local means filter」で検索する。

処理内容の紹介記事
Non-local Means Filterによるデノイジング | OpenCV.jp
Non-local Means Filterの実装 – Qiita

該当ソースコード:FFmpeg/vf_nlmeans.c at master · FFmpeg/FFmpeg
公式ドキュメント:FFmpeg Filters Documentation : nlmeans
続きを読む 非局所平均のデノイザ nlmeans

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

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

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

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