2色のグラデーションにするにはnormalize
フィルタを使えばよいが、2色だけ、3色だけにするにはlutyuv, lutrgb
フィルタを使いこなすことで作ることが出来る。イメージとしては「ブラタモリ」のオープニングで見られる効果に似ている。
2018年1月のニコ生統計
集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。
全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。
movie, amovie 入力の設定内容
ffplayで複数ファイルを読み込んだり、ffprobeでフィルタを当てた後のデータを調べるときに使うmovie、amovie入力の設定内容。名前の通り映像と音声なので字幕は読めないが、closed captionの字幕なら読める。
ファイルパス指定にはエスケープに注意する。
ffmpeg | パス指定とエスケープ
ffplay のショートカットキー
VLC 3.0 がリリースし ARIB 字幕や AV1 デコードに対応
アップデート内容:vlc-3.0/NEWS at master · videolan/vlc-3.0
公式サイト:Official download of VLC media player, the best Open Source player – VideoLAN
Windows 32bit のポータブル版
https://get.videolan.org/vlc/3.0.10/win32/vlc-3.0.10-win32.7z
https://get.videolan.org/vlc/3.0.10/win32/vlc-3.0.10-win32.zip
Windows 64bit のポータブル版
https://get.videolan.org/vlc/3.0.10/win64/vlc-3.0.10-win64.7z
https://get.videolan.org/vlc/3.0.10/win64/vlc-3.0.10-win64.zip
バンダイチャンネルの字幕を ass に変換する PHP
バンダイチャンネルの日本語字幕付き動画に表示されている字幕を普通の動画プレイヤーで見られる ass, srt と字幕だけの txt に変換する PHP。ファイル名を動画タイトルにするのが出来ていないのと、昔の動画、例えばボトムズなどは字幕が xml ではなく vtt なのでこれにも対応していない。
日本語字幕付き | バンダイチャンネル|好きなアニメを楽しもう!
字幕ファイルを動画に合わせる方法
【ffmpeg】 マルチトラックの動画の作り方
字幕ファイルを動画に焼き付ける subtitles
字幕ファイルを動画に焼き付ける(ハードサブ)subtitles
フィルタの使い方。字幕ファイルのスタイルを書き換えて字幕ファイルを出力するフィルタではない。似たフィルタにass
フィルタがあるが、subtitles
フィルタはass
フィルタよりも複雑な設定ができる。このフィルタを使うには–enable-libassとlibavcodec、libavformatが必要。
基本コマンド
input.ass ファイルを表示する。
ffmpeg -i input -vf subtitles=sub.ass output
ffplay -i input -vf subtitles=sub.ass
映像の最初をカット(開始25分から26分時点まで)して同時に字幕時間の最初もカットする。参照元。
ffmpeg -ss 25:00 -to 26:00 -copyts -i video -ss 25:00 -vf subtitles=sub.srt -c:a copy output.mp4
webm 形式にエンコードするときは-output_ts_offsetをつける。参照元。
ffmpeg -ss 25:00 -to 26:00 -copyts -i video -vf subtitles=sub.srt -c:v libvpx-vp9 -crf 30 -b:v 0 -qmin 3 -qmax 40 -c:a copy -output_ts_offset 25:00 output.webm
シークバーが意図したものより長くなっているときは-avoid_negative_ts make_zeroを出力オプションにつける
ffmpeg -ss 23:10 -copyts -i input.mp4 -vf subtitles=input.mp4 -avoid_negative_ts make_zero output.mp4
FFmpeg: How can I burn subs and clip a video with only one line? – Super User
subtitles
フィルタで動画ファイルから字幕を選んだときはBT.601のカラースペースらしいので、BT.709素材の時はBT.601に変換しsubtitles
フィルタを当てて、BT.709に戻す。おそらく字幕ファイル単体で読み込んだときはカラースペースの変換は不要。
ffmpeg -y -i input.mkv -filter_complex scale=in_color_matrix=bt709:out_color_matrix=bt601,subtitles=input.mkv:si=0,scale=in_color_matrix=bt601:out_color_matrix=bt709 -pix_fmt yuv420p output.mp4
video – FFmpeg incorrect colourspace with hardcoded subtitles – Super User
動画にカラーマトリックスが指定してあれば、それを読むように、なければBT.601で読むように修正された。
avfilter/vf_subtitles: Respect YCbCr Matrix header · FFmpeg/FFmpeg@72e5381 · GitHub
テキスト字幕のストリームをコピーしてフォントサイズが変わるときは-map 0:t?も追加する。
Copied .ass Subtitle Changes Font Size : ffmpeg
2017年12月のニコ生統計
集計期間は週間のニコ生統計の1ヶ月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。2017年8月24日(34週目)からユーザー生放送の新配信での予約延長が無料になり総配信数が減っている。
1枠30分はもはや絶滅危惧種なので来年からは30分枠、6000制限をなくす予定。
ass の字幕ファイルを動画に焼き付ける ass
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
x264 一つのバイナリで複数のビット深度に対応
一つのバイナリで 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 のビルドにはオプション指定しなくても複数のビット深度に対応している。
AMD VCE 対応の ffmpeg をつくる
ffmpeg 4.0 から追加されたエンコーダ。AMF(Advanced Media Framework)SDK を使ったAMD の VCE(Video Coding Engine)を ffmpeg で使う方法。RX470 で試したところ、h264_amfのほうが、hevc_amfよりも VMAFスコアを見る限り高画質でエンコード速度は少し遅く、デコード速度が早くなる。
関連記事
hardware acceleration の Wiki:HWAccelIntro – FFmpeg
公式の Wiki:FFmpeg and AMF HW Acceleration · GPUOpen-LibrariesAndSDKs/AMF Wiki
準備
- SDK を保存。GitHub – GPUOpen-LibrariesAndSDKs/AMF: The Advanced Media Framework (AMF) SDK provides developers with optimal access to AMD devices for multimedia processing
- SDK を展開し、amf/public/include の中身を、/usr/local/include/AMF にコピーする。AMF のフォルダは無いので新しくフォルダを作る。
- ffmpeg の configure では自動検出するのでオプションを追加する必要は無い。不必要なら
--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