千円で有名になったHDMIキャプチャカードだが、複数の販売元では送料込みで700円を割り込んでいる。公式画像では「Shenzhen Yonghui Fashion Co., Ltd」の配送になるが、今回購入したのは「XBOW」から。「今すぐ買う」のボタンの下から選択できる。最初の頃に言われていた音声がおかしい問題は解決されて1280×720の60fpsのMJPGで取り込めて、手軽なHDMI出力の画面表示に使える。

Y&H HDMIキャプチャカード HD 1080P 録画 配信用、HDMI キャプチャー、ビデオキャプチャ DSLR ビデオカメラ ミラーレス Xbox 360 One PS4 Wii U Switch 対応 HDVC2(Amazonにリンクしています)

Y&H HDMIキャプチャカードのパッケージ

基本コマンド

ffmpegではdshowで扱える。以下のコマンドでデバイス名を取得する。映像と音声とそれぞれの代替名が表示される。
ffmpeg -list_devices true -f dshow -i dummy

"USB Video"
   Alternative name "@device_pnp_\\?\usb#vid_534d&pid_2109&mi_00#6&16c1d60c&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
"デジタル オーディオ インターフェイス (USB Digital Audio)"
   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{265CAD41-EAB9-411E-B22A-0DBBA727C917}"

コマンド例。-vcodec mjpeg読み込みなのでJPG特有のノイズがある。
ffmpeg -rtbufsize 10MB -f dshow -video_size 1280x720 -framerate 60 -vcodec mjpeg -i video="USB Video":audio="デジタル オーディオ インターフェイス (USB Digital Audio)" -pix_fmt yuv420p output
ffplay -rtbufsize 10MB -f dshow -video_size 1280x720 -framerate 60 -vcodec mjpeg -i video="USB Video":audio="デジタル オーディオ インターフェイス (USB Digital Audio)"

無圧縮データを扱うなら-pixel_format yuyv422を指定する。解像度毎に扱えるフレームレート数の上限が異なる。
fffplay -rtbufsize 10MB -f dshow -video_size 1920x1080 -framerate 5 -pixel_format yuyv422 -i video="USB Video":audio="デジタル オーディオ インターフェイス (USB Digital Audio)"
fffplay -rtbufsize 10MB -f dshow -video_size 1280x720 -framerate 10 -pixel_format yuyv422 -i video="USB Video":audio="デジタル オーディオ インターフェイス (USB Digital Audio)"
ffplay -rtbufsize 10MB -f dshow -video_size 720x480 -framerate 30 -pixel_format yuyv422 -i video="USB Video":audio="デジタル オーディオ インターフェイス (USB Digital Audio)"

気になった点はffmpegやVLCで読み込むときは映像と音声はズレないが映像が送れて流れるので操作が必要な映像を見るには向かない。MPC-HCで読み込むときは音声が遅延しているが映像の遅延はない。オプションを開いて再生->キャプチャより、映像に「USB Video」、音声に「デジタル オーディオ インターフェイス (USB Digital Audio)」、地域に「81 – Japan – NTSC M J」をプルダウンから選び適用してプレイヤー画面左上の「デバイスを開く」。

MPC-HCの設定画面

OBSでは問題が無い。こちらは「オーディオの詳細プロバティ」から同期オフセットで遅らせることもできる。

OBSの設定画面

扱える解像度とフレームレートなどの情報

個別のデバイスで扱える内容を取得する。無圧縮のyuyv422はフレームレート上限が低くなる。mjpegで解像度1280×720より大きい値でもfps=60.0002になっているが扱えない。
ffmpeg -list_options true -f dshow -i video="USB Video"

  vcodec=mjpeg  min s=1920x1080 fps=10 max s=1920x1080 fps=60.0002
  vcodec=mjpeg  min s=1600x1200 fps=10 max s=1600x1200 fps=60.0002
  vcodec=mjpeg  min s=1360x768 fps=10 max s=1360x768 fps=60.0002
  vcodec=mjpeg  min s=1280x1024 fps=10 max s=1280x1024 fps=60.0002
  vcodec=mjpeg  min s=1280x960 fps=10 max s=1280x960 fps=60.0002
  vcodec=mjpeg  min s=1280x720 fps=10 max s=1280x720 fps=60.0002
  vcodec=mjpeg  min s=1024x768 fps=10 max s=1024x768 fps=60.0002
  vcodec=mjpeg  min s=800x600 fps=10 max s=800x600 fps=60.0002
  vcodec=mjpeg  min s=720x576 fps=10 max s=720x576 fps=60.0002
  vcodec=mjpeg  min s=720x480 fps=10 max s=720x480 fps=60.0002
  vcodec=mjpeg  min s=640x480 fps=10 max s=640x480 fps=60.0002
  pixel_format=yuyv422  min s=1920x1080 fps=5 max s=1920x1080 fps=5
  pixel_format=yuyv422  min s=1600x1200 fps=5 max s=1600x1200 fps=5
  pixel_format=yuyv422  min s=1360x768 fps=8 max s=1360x768 fps=8
  pixel_format=yuyv422  min s=1280x1024 fps=8 max s=1280x1024 fps=8
  pixel_format=yuyv422  min s=1280x960 fps=8 max s=1280x960 fps=8
  pixel_format=yuyv422  min s=1280x720 fps=10 max s=1280x720 fps=10
  pixel_format=yuyv422  min s=1024x768 fps=10 max s=1024x768 fps=10
  pixel_format=yuyv422  min s=800x600 fps=5 max s=800x600 fps=20
  pixel_format=yuyv422  min s=720x576 fps=5 max s=720x576 fps=25
  pixel_format=yuyv422  min s=720x480 fps=5 max s=720x480 fps=30
  pixel_format=yuyv422  min s=640x480 fps=5 max s=640x480 fps=30

ffmpeg -list_options true -f dshow -i audio="デジタル オーディオ インターフェイス (USB Digital Audio)"

 min ch=1 bits=8 rate= 11025 max ch=2 bits=16 rate= 44100

オプション

dshowでよく使うオプション。

公式ドキュメント:FFmpeg Filters Documentation : dshow

ffmpeg -h demuxer=dshow

  • -video_size[image_size]
    解像度の指定
  • -pixel_format[pix_fmt]
    ピクセルフォーマットの指定
  • -framerate[string]
    フレームレートの指定
  • -sample_rate[int]
    サンプリング周波数の指定
  • -channels[int]
    音声チャンネル数の指定

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)