Dxtory は有料ではあるがこれを使うことでN Air、XSplit、OBS Studioなどのレイアウト画面、MPC-HC(madVR)などのプレイヤー、各種PCゲーム(DirectX や DirectDraw、OpenGL、Vulkan)を ffmpeg で直接取り込むことができる。
ffmpeg でメタデータを加える
フィルタで扱う:Meta | ニコラボ
色空間など:色関係の設定のまとめ
カバーアート:mp4, mp3, flacにカバーアートを付ける
特徴
- メタデータは直接コマンドに書き込むと、メタデータを書き込んだファイルを読み込む2種類の方法がある
- メタデータファイルは UTF-8 でエンコードされた INI 形式のテキストファイルで構成される
- ファイル読み込みの場合にはヘッダに識別番号を付けてコマンドに識別番号を指定する
- メタデータの指定方法はkey=value
- チャプターやストリーム毎にメタデータを指定できる
- 先頭に [CHAPTER] や [STREAM] を宣言してチャプターやストリームを指定する
- チャプターでタイムベースを指定できる。指定していない場合はミリ秒とする
- 例:TIMEBASE=num/den
チャプターの開始と終了の時間を指定する。演算はできないので予め計算しておく(数値は正の整数) - 例:START=num, END=num
- 例:TIMEBASE=num/den
- コメントには “;” , “#” が使える
- 特殊文字(“=”, “;”, “#”, “” と改行)はバックスラッシュ()でエスケープする
DiXiM BD Burner 2013 で 0x80304005 エラーが出る
Logitec の USB3.0 接続の BD ドライブ LBD-PMF6U3HBKW でテレビ番組をネット経由で BD にダビングできなくなった話とその解決方法。
なお、テレビ番組のダビングには付属のソフトの DiXiM BD Burner 2013 for Logitec を用いている。
症状
以前(2014年11月)にダビングした BD に追記の形を取ると書き込み 100% まで行くがその後の処理で(ディスクの回転も)止まる。BD にはデータが書き込まれているのでダビング10の回数が減る。しかし動画は再生できない。このときに BD は取り出し不能になる。十数分放置すると DiXiM BD Burner 2013 がエラーになり、0x80304005 のコードが表示される。こうなると BD が取り出し可能になる。このエラーになると以前に書き込んだデータは再生できるがエラー以降に書き込んだデータは再生できない。さらに DiXiM BD Burner 2013 でのフォーマットができなくなるが、エクスプローラーからのクイックフォーマットはできる。
解決策
まずは最新版に DiXiM BD Burner 2013 をアップグレードした。現時点では Ver.1.0.19.0 が最新版。しかしこれでも解決しなかったため別の方法をとる。エクスプローラーでクイックフォーマットをしてから再度、DiXiM BD Burner 2013 でフォーマットすると問題なくダビングできた。
エラーの原因を推測
以前のデータと混在させることなく新しいフォーマットの状態で書き込みができると言うことは以前と今回とで書き込む内容が変わったのかもしれない。
RTMP streams に対応した MPC-HC v1.7.8 が公開
2015年1月25日に公開された v1.7.8 から librtmp のパラメーターを使っての RTMP ストリームに対応した。これで RTMP 映像を受信できるが、アーカイブされた動画ではシークバーが動かなかったり、開始時間指定が機能しなかったり、ffplay では再生できる RTMPE が再生できなかったりと完全に機能しているわけではない。
ffmpeg でモーションブラーを掛ける
SHIROBAKO の15話でモーションブラーが出てきたがそれを ffmpeg でもある程度実現することができるのでその方法の紹介。ポイントは一定周期のフレーム数でブレンドの平均をするところ。
具体的にはモーションブラーとここで紹介するフレームブレンドは異なる。
使うフィルタはblend
フィルタ。
YUV RGB を比較計算する blend
atadenoise
フィルタで手軽に前後1フレームのモーションブラーを当てることができる。
手軽にモーションブラー atadenoise
フレームブレンドで過去フレームの加重を調整するのに便利なtmix
フィルタがある。
FFmpeg Filters Documentation : tmix
追記 2015年3月7日
tblend
フィルタによる「とても軽めのモーションブラー」を追加。
ffmpeg に nvenc(cuda)をインストールする
ffmpeg 2.6から使えるNVENC, NVDECを使う方法。
- FFmpeg / libav | NVIDIA Developer
- NVIDIA FFmpeg Transcoding Guide | NVIDIA Developer Blog
- NVIDIA VIDEO CODEC SDK | NVIDIA Developer
- Using FFmpeg with NVIDIA GPU Hardware Acceleration
hardware acceleration の Wiki:HWAccelIntro – FFmpeg
追記 2024年4月1日
SDK 12.2のビット深度APIのサポート。
- avcodec/nvenc: support SDK 12.2 bit depth API · FFmpeg/FFmpeg@06c2a2c · GitHub
- avcodec/nvenc: update minimum driver version list · FFmpeg/FFmpeg@c06e9e2 · GitHub
- avcodec/nvenc: add support for unidirectional b-frames · FFmpeg/FFmpeg@21b4708 · GitHub
- avcodec/nvenc: add support for uhq tune · FFmpeg/FFmpeg@a270966 · GitHub
- avcodec/nvenc: add support for lookahead_level · FFmpeg/FFmpeg@77d23bc · GitHub
- avcodec/nvenc: add support for HEVC temporal filtering · FFmpeg/FFmpeg@64e3fc9 · GitHub
関連記事
ffmpeg で アニメーションWebP(Animated WebP)を作る
APNGと並んで互換性の低かったAnimated WebPについて。対応ブラウザは、Chrome、Opera、Winodws 10のMicrosoft Edge44以降、そしてFirefox 65以降である。画像投稿サイトはほとんど対応してないと思うので実用性は高くない。対応カラーフォーマットは YUV420p(YUVA420p)。APNGのように可逆圧縮だけではないので低容量でアニメGIFよりも高画質に作れるが互換性が低いのが弱点。
2020年11月現在、ffmpegではAnimated WebPをデコードできない。1フレームのWebpならデコードできる。Patchworkにパッチが来ているが公式には組み込まれていない。
#4907 (Support decoding animated WebP images) – FFmpeg
[FFmpeg-devel] avformat/webpdec: WebP demuxer implementation – Patchwork
ffmpeg を使って透過したオーバーレイ動画を作る
透過のテキストはできるが透過の動画はoverlay
フィルタだけを使って動画を重ねても透過にならないので、blend
フィルタを応用して透過したオーバーレイ動画を作る方法。コツは透過する画像の周りを背景となる映像と同じ映像をオーバーレイしてblend
のaverageで同じ映像同士の平均は同じというのを利用する。透過する映像の位置は overlay フィルタで指定する。前回記事の「ffmpeg で差分動画を作る」と同じように「:c0_opacity=.5」と等とすることで透過具合を変更することもできる。
追記 2015/01/15
識別子の c が表示されていなかったので c0 に変更した。
ffmpeg で差分動画を作る
Avisynth で言うところのSubtractを ffmpeg のblend
を使って差分を表示して比較動画を作る方法。
使うフィルタはblend
で設定できる内容はたくさんあるが使うのは difference モードで2つの映像の差異を表示する。そのほかにも映像の YUVA/RGBA の値を四則演算できるが、それぞれの詳しい内容は理解していない。詳しい処理はソースコードを参照。
フレームレートを 30000/1001 から 24000/1001 に間引く場合はdecimate
するときれいに間引ける。インターレース解除はyadif
、フレーム数の指定でのカットはtrim
を使う。yadif, trim, decimate, setpts の順番にフィルタをかける。
適切な音量が調べられる ffmpeg の ebur128 の使い方
LUFS、いわゆる平均ラウドネス値を調べるebur128
フィルタの使い方。
LUFS(Loudness Unit Referred to Full Scale)とは平均ラウドネス値の単位で、LKFS(Loudness K Weghted Full Scale)とも言われている。
ニコニコ動画にも2020年1月29日(水)より大きすぎる音量感を抑制する方向でのみラウドネスノーマライゼーション(自動音量調整機能)を追加することが発表された。
動画音量の自動調整機能を導入します【PC版ニコニコ動画】|ニコニコインフォ
ニコニコ動画のラウドネスノーマライゼーション(自動音量調整機能)について:ニコニコ窓口:niconico窓口チャンネル(ニコニコ窓口担当) – ニコニコチャンネル:社会・言論