集計期間は週間のニコ生統計の6月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。
明るいところ、暗いところにフィルタを当てる
明暗の度合いでもマスクできるのでこれを応用して一つの映像に複数のフィルタを使い分ける方法。特定色ならcolorkey
フィルタを使ってマスクすることもできる。一般的には映像をシャープにするほど容量は大きく、ぼかすほど容量は小さくなるので、シャープとぼかしを使い分けて高画質配信を目指す。
colorkey の使い方:ffmpeg でクロマキー合成
なぜぼかしも併用するかと言えばビットレートの節約になるのも正しいが、ニコ生のようなビットレート制限が厳しいところでは、低解像度で暗くて見えにくい部分にビットレートをたくさん割り当てる必要はないからである。
ffmpeg でヒストグラムを表示する
histogramフィルタの使い方
動画編集ツールによくあるヒストグラムを表示するhistogram
フィルタの使い方。以前あったcolor、waveformオプションは廃止になり個別のフィルタとして独立した。
2チャンネルの値を2次元で表示する vectorscope
ffmpeg で YUV, RGB波形を表示する waveform
リアルタイムでVUメーターを表示する showvolume
音量をリアルタイムでメーター表示する ffmpeg のshowvolume
のフィルタの使い方。出力フォーマットは RGBA。条件をつければ指定 dB の範囲に色を変えられる。
基本コマンド
映像をメーターに差し替える。
ffmpeg -i input -filter_complex showvolume=r=25:b=1:w=400:h=20:t=1:v=1:s=0 -c:a copy output
ffplay -f lavfi -i amovie=input,showvolume
2チャンネルのメーターだけを再生する。
ffplay -f lavfi "amovie=input,asplit[a][out1];[a]showvolume=b=4:w=720:h=68[out0]"
サンプリング波形を一枚画像で出力する showwavespic
音声データを読み込みサンプリング波形を一枚画像で出力するshowwavespic
の使い方。音声のどの時間帯でどのくらいの音量があるのかがよくわかる。
読み込み開始時点や終了時点を変更する -ss, -t, -to などはエラーになるので使えない。出力フォーマットはグレースケール RGBA になるのでoverlay
フィルタなどで別の映像と合わせるのにも使える。
リアルタイムに同様の波形を調べるにはshowwaves
フィルタを使う。
音声波形を表示する showspectrum, showwaves の使い方
基本コマンド
既定値からチャンネル別に表示。
ffmpeg -i input -filter_complex "showwavespic=s=600x240:split_channels=1:colors=red|green:scale=0" showwavespic.png
公式ドキュメント:FFmpeg Filters Documentation : showwavespic
オプション
- size, s[image_size]
画像の出力解像度
既定値:600×240 - split_channels[boolean]
チャンネル別に表示するかどうか。0 にするとチャンネルの数だけ色がミックスされる
既定値:0(しない) - colors[string]
波形の色指定。チャンネル数毎に | で指定する
既定値:”red|green|blue|yellow|orange|lime|pink|magenta|brown” - scale[int]
振幅のサイズ指定 - 0, lin:線形。一番小さい。既定値
- 1, log:対数。一番大きい
- 2, sqrt:平方根。2番目に小さい
- 3, cbrt:立方根。3番目に小さい(2番目に大きい)
- draw[int]
描写方法の指定 - 0, scale:ダウンサンプルして描写する。既定値
- 1, full:そのまま描写する
関連記事
ffmpeg で指定秒ごとに分割する方法
出力フォーマットにsegmentmuxer を使って指定秒ごとに分割する。ストリームコピーする場合は GOP の関係で正確な指定秒ごとに分割できない。さらにファイルサイズを指定(-fs)して分割は出来ない。ニコ生のタイムシフトの個人的なバックアップ(ニコ動に非公開で投稿する)にも使える。
詳細な分割設定ができる Segment
ffmpeg で指定時間でカットするまとめ
-segment_timeで分割する秒を指定する。
ffmpeg -analyzeduration 30M -probesize 30M -i input -c copy -f segment -flags +global_header -segment_format_options movflags=+faststart -reset_timestamps 1 -segment_time 720 output%02d.mp4
HLS 用の m3u8 を出力するにはコマンドもある。動画のファイルは m3u8 のファイル名.ts になる。
H.264/AVC.mp4 をコピーする場合は-bsf:v h264_mp4toannexb
をつける。
-hls_timeで分割する秒を指定する。
ffmpeg で Apple HTTP Live Streaming(HLS)を扱う
ffmpeg -analyzeduration 30M -probesize 30M -i input -c copy -f segment -flags +global_header -segment_format_options movflags=+faststart -reset_timestamps 1 -bsf:v h264_mp4toannexb -hls_time 720 output.m3u8
公式ドキュメント
FFmpeg Formats Documentation :: segment, stream_segment, ssegment
FFmpeg Formats Documentation :: hls
連結する場合は-segment_listで ffconcat 形式を指定すればリストファイルを同時に作成する。
-segment_list out.ffconcatで分割したファイルをまとめたリストを出力する。
ffmpeg -i input.mp4 -c copy -map 0 -flags +global_header -f segment -segment_time 60 -segment_list out.ffconcat -segment_format_options movflags=+faststart -reset_timestamps 1 out%03d.mp4
上の out.ffconcat を読み込んで1つのファイルに戻す。
ffmpeg -i out.ffconcat -c copy -segment_format_options movflags=+faststart output.mp4
- 【ffmpeg】動画・音声を連結する concat の使い方
- 【ffmpeg】動画・音声を連結する concat の使い方 其の2
- 【ffmpeg】動画・音声を連結する concat の使い方 其の3
以下のコマンドを追加した。2016年2月13日
-flags +global_header -segment_format_options movflags=+faststart -reset_timestamps 1
-flags +global_headerはヘッダーを明示する
-segment_format_options movflags=+faststartは読み込みから再生開始を早める(特にブラウザのビデオタグで見る場合)
-reset_timestamps 1はタイムスタンプを初期化する(反対のオプションは -copyts)
-segment_listの説明を追加。分割しても連結しやすくなった。2019年10月30日
2015年5月のニコ生統計
集計期間は週間のニコ生統計の6月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。
RGBA の各値を別のチャンネルに混ぜ合わせる colorchannelmixer の使い方
RGBA からそれぞれのRGBAにミックスして色を変えるフィルタcolorchannelmixer
フィルタの使い方。RGB24で入力した場合の出力フォーマットはRGB24になる。タイムライン編集に対応。YUV のままに RGB の色味を強くしたり弱くしたりしたい場合はeq
フィルタのgamma_r, gamma_g, gamma_bを調整する。
Windows の ffmpeg で生放送する方法 : eq(明暗調整)
Continue reading “RGBA の各値を別のチャンネルに混ぜ合わせる colorchannelmixer の使い方”
ffmpeg でクロマキー合成
ffmpeg にcolorkey
フィルタが取り込まれたことにより、クロマキー合成や特定色に個別のフィルタを当てられるようになった。
ffmpeg 2.7.1 以降でcolorkey
フィルタが使える。
avfilter/vf_colorkey: Add colorkey video filter
colorkey
は指定した色の部分をアルファチャンネルにして、それ以外を RGB の BGRA で出力する。指定する色は16進数の rrggbb 形式か、色名を指定する。入力映像が RGB の方が YUV よりも処理が早い。
YUVA で処理するchromakey
フィルタはこちら:ffmpeg でクロマキー合成 その2
16進数と色の説明:FFmpeg Utilities Documentation :: Color
ニコ動の SWF 投稿が出来なくなる
2015年6月18日の14時過ぎにニコるとスピードチェッカーも一緒に SWFファイルが投稿できるサービスは終了した。ニコられると動画右のコメント欄が黒く、よりニコられると赤くなる仕様だったが押し間違いや、押したことによるアカウント通知機能がうまくいかずに終了したことになる。
最後の魚拓:ニコるってイイね!|niconico
SWFファイルは Flash Player 依存の動画で、それに依存しない再生環境を揃えるためだと思う。SWF の映像には VP6 か H.263 が用いられるが、H.264 に再エンコードした場合に画質の劣化がどうしても起きるので、再エンコード後の再生の互換性と保守の面から仕方ない判断である。
【一部機能の提供終了に関するお知らせ】swfファイルでの動画投稿/ニコる/スピードチェッカー‐ニコニコインフォ
最後の SWF 動画
cry.swf – ニコニコ動画:GINZA
この方法Icy Cellar 3 – ニコニコ動画 – SWF形式のアップロードについてで従来は投稿できたが、ニコニコムービーメーカー経由でなくても投稿できなくなった。
SWF を投稿するとこのエラーが返ってくる