2018年11月2日 4.0.3 がリリースされた。アップデート内容は修正ばかりで新しいフィルタは入ってない。てっきり 4.1 が先にリリースするかと思ったがまだこなかった。
Changelog: update release version 4.0.3 – ffmpeg.git/commitdiff
git.videolan.org Git – ffmpeg.git/shortlog : n4.0.3
niconicoとffmpegのことを中心に書いてる
2018年11月2日 4.0.3 がリリースされた。アップデート内容は修正ばかりで新しいフィルタは入ってない。てっきり 4.1 が先にリリースするかと思ったがまだこなかった。
Changelog: update release version 4.0.3 – ffmpeg.git/commitdiff
git.videolan.org Git – ffmpeg.git/shortlog : n4.0.3
集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。
全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。
YUV(A) や RGB(A)、GRAY の数値を16進数で映像にオーバーレイして確認できるdatascopeフィルタの使い方。数値ではなく映像で表示するフィルタにhistogramフィルタがあるがdatascopeフィルタの方が直感的に任意の場所の数値が読み取れる。ただし表示できる範囲は全画面ではなく1px毎に表示されるので全体の変化を大まかに調べるのには向かない。
ffplay input -vf datascope=s=1280x720:x=0:y=0:mode=0:axis=0
チャンネル数の数だけ 1px に表示される数が変わる。上から順番にチャンネルが割り振られる。チャンネルが増えるだけ表示できる解像度が狭くなる。
libcdio で手軽に音楽CDを再生したり、リッピングすることができるが、個別に時間指定しないとトラック毎にファイルが出力されないので他のプログラムと併用しないとあまり実用的ではない。
Zeranoe は非対応なので「お気に入りの動画を携帯で見よう」から保存する。
FFmpegダウンロード お気に入りの動画を携帯で見よう
drawtextフィルタを使って時間とフレーム数を表示する方法。ただしこの方法は固定フレームでしか使えない。30000/1001 などの部分を動画のフレーム数で指定する。表示される内容は左から秒時間、hms時間、フレーム数、フレーム数を5で割った余り、ピクチャータイプ。
集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。
全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。
Netflixが使っているエンコードされる前と後の動画の品質評価に使われている VMAF(Video Multimethod Assessment Fusion)スコアをffmpegで調べる。以前の記事に異なる解像度でも調べられると書いていたが間違いである。同じ解像度でないと調べられない。対応サブサンプリングは4:2:0、4:2:2、4:4:4になり、エンコード前後でピクセルフォーマットが異なるときは2入力目の参照元のファイルのピクセルフォーマットに変換される。外部ライブラリフィルタなので別途インストールが必要で--enable-libvmafを付ける。--enable-version3はつけなくてもよくなった。vmaf v2.0.0以降をリンクしたffmpegではn_threadsでスレッド数を指定しないと処理速度が上がらない。
3. It relies on existing image quality metrics (VIF, DLM), properly modified to cover multiple scales of resolution, as well as the amount of motion between consecutive video frames in a video sequence as features that are input in a machine-learned set of weights. The final score is the result of combining these elementary features in a support vector machine (SVM) regressor.
3. VMAFは、既存の画質評価指標(VIF、DLM)を、複数の解像度に対応するように適切に修正したものと、連続するフレーム間の動きの量を、機械学習した重みをセットに入力する特徴を利用している。最終的なスコアは、これらの初歩的な特徴をサポートベクターマシン(SVM)の回帰分析と組み合わせた結果になる。
2022年1月24日のコミットでlibvmaf v2.0.0に対応しオプション指定を刷新した。`compute_vmaf()` is deprecated and will be removedのエラーは出なくなり、複数モデルのスコアを同時に調べられるようになっている。
今週の放送分から brightcove から boltdns に代わり master.m3u8 だと低ビットレートの 1080p になるのでこれを 720p に変更する。ダウンローダは youtube-dl と ffmpeg を使い2つとも同じフォルダに置いておく。-Fで調べたフォーマットを-fで指定する。音声フォーマットは 3つあるが、上から順にビットレートが 64k, 96k, 128k になるので3番目を指定する。master.m3u8 の調べ方は F12 で開発ツールを開き F5 でリロードし、動画を再生し、ネットワークタブに mas を入力すると master.m3u8 が見つかる。
youtube-dl: Download Page
Download FFmpeg
フォーマットの調べ方
youtube-dl "master.m3u8 の URL" -F
調べたフォーマットを-fで複数指定して保存する
youtube-dl "master.m3u8 の URL" -f 2005+audio-2-en__Main_ -o "output.mp4"
ffmpeg 単体のコマンド例
ffmpeg -i "master.m3u8 の URL" -map 0:5 -map 0:4 -c copy "output.mp4"
ffmpeg -i "master.m3u8 の URL" -map p:2 -c copy "output.mp4"
追記 2018年6月13日
放送局のサイトよりも GYAO! のほうがビットレートが高く、手軽だった。
白くなるところが真っ白になってなかったり、黒になるところが真っ黒になってないところを ffmpeg で補正する。方法はコントラストを上げて白はより白く、黒はより黒くする。今回は白黒ページの色補正だけでリサイズ(解像度を変える)、クロップ(指定範囲で切り取る)、デノイズは行わない。
自炊したときに JPG(PNG、BMP、TIFFでも可能)で出力したときに使える方法であり、PDFは ffmpeg では扱えない。一般的に Photoshop や GIMP を使う方法がよく紹介されているが、これらは一度 RGB にデコードして再度JPG出力するときに YUV に変換するので処理が遅くなりがちであるが、以下の方法は RGB 変換を挟まないので処理が早い。
v1 は対応してるが v2 はまだ対応してない
3DS版「ニコニコ」で使用しているAPIまとめ – nanowayより一部を抜粋
https://ext.nicovideo.jp/api/getthumbinfo/sm9
https://flapi.nicovideo.jp/api/getrelation?video=sm9
https://api.ce.nicovideo.jp/nicoapi/v1/video.relation?v=sm9
https://api.ce.nicovideo.jp/nicoapi/v1/video.info?v=sm9
https://api.ce.nicovideo.jp/api/v1/community.array?id=co1
https://api.ce.nicovideo.jp/api/v1/step.video.ranking?date=2017-11-13&type=daily(無効確認。2021年5月21日)
https://api.ce.nicovideo.jp/api/v1/session.create?__format=json(無効確認。2021年5月21日)
2018年2月28日 v2 の対応確認
コンテンツ検索API V2 について
ただし、ニコ生で重要な getplayerstatus は未対応。