集計期間は週間のニコ生統計の1ヶ月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。2017年8月24日(34週目)からユーザー生放送の新配信での予約延長が無料になり総配信数が減っている。
1枠30分はもはや絶滅危惧種なので来年からは30分枠、6000制限をなくす予定。
niconicoとffmpegのことを中心に書いてる
集計期間は週間のニコ生統計の1ヶ月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。2017年8月24日(34週目)からユーザー生放送の新配信での予約延長が無料になり総配信数が減っている。
1枠30分はもはや絶滅危惧種なので来年からは30分枠、6000制限をなくす予定。
assの字幕ファイルを動画に焼き付ける(ハードサブ)assフィルタの使い方。似たフィルタにsubtitlesフィルタがあるが、assフィルタは単純に ass ファイルを動画に焼き付けるだけの簡易なフィルタである。このフィルタを使うには–enable-libassが必要である。
input.ass ファイルを表示する。
ffmpeg -i input -vf ass=input.ass output
ffplay -i input -vf ass=input.ass
assファイルのパス指定の例。詳しくは パス指定とエスケープを参照。
ffmpeg -i input -vf ass='E:/input.ass' output
ffplay -i input -vf ass='E:/input.ass'
字幕ファイルのエンコードは–enable-libassがなくてもできる。
ffmpeg -i input.srt output.ass
assファイルの書き方:
公式ドキュメント:FFmpeg Filters Documentation : ass
一つのバイナリで 8, 10 ビット深度の両方に対応した。それに伴って ffmpeg も両方エンコードが出来るようになった。ただし古い ffmpeg を利用するとエラーが出るので master を利用する。
対応コミット
git.videolan.org Git – x264.git/commitdiff : Unify 8-bit and 10-bit CLI and libraries
git.videolan.org Git – ffmpeg.git/commitdiff : x264: Support version 153
x264 のビルドにはオプション指定しなくても複数のビット深度に対応している。
ffmpeg 4.0 から追加されたエンコーダ。AMF(Advanced Media Framework)SDK を使ったAMD の VCE(Video Coding Engine)を ffmpeg で使う方法。RX470 で試したところ、h264_amfのほうが、hevc_amfよりも VMAFスコアを見る限り高画質でエンコード速度は少し遅く、デコード速度が早くなる。
関連記事
wiki
--disable-amfをつける。Windows以外
Gentooでamf-amdgpu-proを利用してGPUで動画エンコードを行えるffmpegを作る方法のメモ – joker1007’s diary
[Question]: What are the proper FFMPEG syntax usages with AMD AMF drivers on Ubuntu Linux? · Issue #332 · GPUOpen-LibrariesAndSDKs/AMF
指定色でのモノトーンを作ったり、レンジを広げて見栄えをよくするnormalizeフィルタの使い方。
フルダイナミックレンジに伸張し、平準化はしない、フリッカー(ちらつき)は映像によっては発生する
ffmpeg -i input -vf normalize=blackpt=black:whitept=white:smoothing=0:independence=1:strength=1
ffplay -i input -vf normalize=blackpt=black:whitept=white:smoothing=0:independence=1:strength=1
解像度を変えずに上下左右を特定色で埋めるfillbordersフィルタの使い方。上下左右にロゴや不要な映像が入っているときに真っ黒にしたり、4:3解像度の映像を16:9にするときにpadフィルタを使って左右に余白を追加し、その余白を合わせ鏡のように変えることも出来る。
ffmpeg 4.0 で追加されたフィルタ。複数の映像を任意の割合で混ぜ合わせるmixフィルタの使い方。今までは透過チャンネルを使ってoverlayフィルタを使っていたがこれからはもっと手軽に複数の映像を映し出すことが出来る。
1つのファイルで連続するフレームを混ぜるならtmixフィルタがある。
連続フレームの映像を任意の割合でミックスするtmix
似たフィルタにfadeフィルタがある。
フェードイン、フェードアウトの設定ができる fade
既定値では2入力である。
ffmpeg -i input1 -i input2 -filter_complex mix ouput
ffmpeg -re -i input1 -i input2 -filter_complex mix -f sdl -



3入力する場合のコマンド例。
ffmpeg -i input1 -i input2 -i input3 -filter_complex mix=3 ouput
公式ドキュメント:FFmpeg Filters Documentation : mix
一つの映像の前後フレームを1フレームに表示し確認できるtileフィルタの使い方。複数並べた映像を元の連続フレームに戻すにはuntileフィルタを使う。

3×3のタイルを-t 3で3秒間の重複のない連続画像を出力する。
ffmpeg -i input -t 3 -vf tile=layout=3x3:nb_frames=0:margin=0:padding=0:color=black:overlap=0:init_padding=0 output-%03d.jpg
キーフレームだけ出力する場合には入力ファイルの前に-skip_frame nokeyをつける。
ffmpeg -skip_frame nokey -i input -t 3 -vf tile=3x3 output-%03d.jpg
ノンリニア編集のように過去5つ前までのフレームを横に表示し、アスペクト比を維持せずに最大横幅が1920ピクセル、縦幅が1080ピクセルまで。
ffplay -i input -vf tile=5x1:overlap=4,scale=1920:1080:force_original_aspect_ratio=decrease
関連記事
公式ドキュメント:FFmpeg Filters Documentation : tile
MP4Boxは使わずにffmpegだけでMPEG-DASHのMPDファイルを作る方法。またffmpeg 3.4からはlibxml2をリンクすることでMPDファイルを読み込むこともできる。各セグメントの.m4sファイルは最初に読み込むinit.mp4を毎回参照し各セグメントの.m4sファイルをデコードしている。
関連記事
ffmpeg で Apple HTTP Live Streaming(HLS)を扱う
公式のガイドライン : DASH-IF Live Media Ingest Protocol : web.archive
外部記事
すべてのセグメントをMPDに記載してコピーする。
ffmpeg -i input.mp4 -c copy -window_size 0 -movflags +faststart output.mpd
1つの映像に1つ目はオリジナルをコピーし、2つめはアスペクト比固定で横解像度は2で割れて、縦解像度360pにリサイズして2つのストリームをリアルタイム-reで出力する。-mapを2度使うことで2出力にしている。
ffmpeg -re -i input.mp4 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -c:v:0 copy -c:a:0 copy -filter:v:1 "scale=-2:360" -c:v:1 libx264 -profile:v:1 main -b:v:1 600k -c:a:1 aac -b:a:1 128k -f dash -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" -movflags +faststart output.mpd
改行しわかりやすくしたもの。
ffmpeg -re -i input.mp4 -map 0 -map 0 -c:v:0 copy -c:a:0 copy -filter:v:1 "scale=-2:360" -c:v:1 libx264 -profile:v:1 main -b:v:1 600k -c:a:1 aac -b:a:1 128k -f dash -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" -movflags +faststart output.mpd
公式ドキュメントには-movflagsを以下に利用している。
-movflags empty_moov+separate_moof+default_base_moof+cmaf
ffmpeg Documentation : mov, mp4, ismv
その他のフラグは以下に利用している。
-fflags genpts -export_side_data prft
ffmpeg Documentation : Format Options
ffmpeg Documentation : Codec Options
dashの読み込み時の設定がDemuxersのほうで、da9a6d5から-decryption_keys key=value形式の辞書型のキーから復号できる。
avformat/mov: add support for multiple decryption keys · FFmpeg/FFmpeg@da9a6d5 · GitHub
公式ドキュメント:FFmpeg Formats Documentation : dash(Demuxers)
公式ドキュメント:FFmpeg Formats Documentation : dash(Muxers)
集計期間は週間のニコ生統計の1ヶ月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。2017年8月24日(34週目)からユーザー生放送の新配信での予約延長が無料になり総配信数が減っている。
1枠30分はもはや絶滅危惧種なので来年からは30分枠、6000制限をなくす予定。