ffmpeg で同じ種類のウェブカメラを2台同時利用する

以前の記事でレジストリを書き換えてffmpegで表示されるデバイス名を変更して同時利用する記事を書いたが、今回はそんな危険なことをせずにffmpegそれ自体にそれぞれを識別する機能が追加されたのでそれを利用してウェブカメラを同時利用する方法。

Continue reading “ffmpeg で同じ種類のウェブカメラを2台同時利用する”

QSV 対応の ffmpeg をつくる

ffmpeg で使える QSV(Intel Quick Sync Video)のビルド方法と使い方。CPU の世代によって使えるエンコーダ、デコーダ、オプションやフィルタが異なる。

関連記事

他のサイト

公式のコマンド例

Continue reading “QSV 対応の ffmpeg をつくる”

Dxtory のキャプチャ内容を ffmpeg で取り込み配信する

Dxtory は有料ではあるがこれを使うことでN AirXSplitOBS Studioなどのレイアウト画面、MPC-HCmadVR)などのプレイヤー、各種PCゲーム(DirectX や DirectDraw、OpenGL、Vulkan)を ffmpeg で直接取り込むことができる。

Continue reading “Dxtory のキャプチャ内容を ffmpeg で取り込み配信する”

ffmpeg でメタデータを加える

フィルタで扱う:Meta | ニコラボ
色空間など:色関係の設定のまとめ
カバーアート:mp4, mp3, flacにカバーアートを付ける

特徴

  • メタデータは直接コマンドに書き込むと、メタデータを書き込んだファイルを読み込む2種類の方法がある
  • メタデータファイルは UTF-8 でエンコードされた INI 形式のテキストファイルで構成される
  • ファイル読み込みの場合にはヘッダに識別番号を付けてコマンドに識別番号を指定する
  • メタデータの指定方法はkey=value
  • チャプターやストリーム毎にメタデータを指定できる
  • 先頭に [CHAPTER] や [STREAM] を宣言してチャプターやストリームを指定する
  • チャプターでタイムベースを指定できる。指定していない場合はミリ秒とする
    • 例:TIMEBASE=num/den
      チャプターの開始と終了の時間を指定する。演算はできないので予め計算しておく(数値は正の整数)
    • 例:START=num, END=num
  • コメントには “;” , “#” が使える
  • 特殊文字(“=”, “;”, “#”, “” と改行)はバックスラッシュ()でエスケープする

Continue reading “ffmpeg でメタデータを加える”

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 でフォーマットすると問題なくダビングできた。

エラーの原因を推測

以前のデータと混在させることなく新しいフォーマットの状態で書き込みができると言うことは以前と今回とで書き込む内容が変わったのかもしれない。

関連記事
LBD-PMF6U3HBKW不具合メモ – あんパン

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フィルタによる「とても軽めのモーションブラー」を追加。

Continue reading “ffmpeg でモーションブラーを掛ける”

ffmpeg に nvenc(cuda)をインストールする

ffmpeg 2.6から使えるNVENC, NVDECを使う方法。

hardware acceleration の Wiki:HWAccelIntro – FFmpeg

追記 2024年4月1日
SDK 12.2のビット深度APIのサポート。

関連記事

Continue reading “ffmpeg に nvenc(cuda)をインストールする”

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

Continue reading “ffmpeg で アニメーションWebP(Animated WebP)を作る”

ffmpeg を使って透過したオーバーレイ動画を作る

透過のテキストはできるが透過の動画はoverlayフィルタだけを使って動画を重ねても透過にならないので、blendフィルタを応用して透過したオーバーレイ動画を作る方法。コツは透過する画像の周りを背景となる映像と同じ映像をオーバーレイしてblendaverageで同じ映像同士の平均は同じというのを利用する。透過する映像の位置は overlay フィルタで指定する。前回記事の「ffmpeg で差分動画を作る」と同じように「:c0_opacity=.5」と等とすることで透過具合を変更することもできる。

追記 2015/01/15
識別子の c が表示されていなかったので c0 に変更した。

Continue reading “ffmpeg を使って透過したオーバーレイ動画を作る”