目的
Elgato Cam Link 4Kとffmpegを用いてHDMIの映像をラズパイに取り込みたいです.
テストとして,公式フォーラムのエンコード例(ffmpeg -f v4l2 -framerate 30 -video_size 640x480 -i /dev/video0 output.mkv
)を試してみたのですが,以下のエラーが出ている状態です.
エラー
Dequeued v4l2 buffer contains 4147200bytes, but 3110400were expected. Flags: 0x00012001.
他のキャプチャデバイスでは...
あえて,最近話題の安価なUVCキャプチャ(CHD201)で同様のコマンドを試したところ,正しくキャプチャできました.
現状の自分の理解
ffmpegのコマンドで配信をすることが最終目的なのですが,そこで対応フォーマットについて調べたりエラーについてググったりしたところ,エラーの4147200Bytes=192010802,3110400Bytes=192010801.5とフォーマットによる違いが原因なのではないかと考えました.
しかし,配信コマンドの際にフォーマットを変えても,またエンコード例のように指定しなくても,同様のバッファのエラーが表示されます.
デバイスの情報
Cam Link 4K
$ ffmpeg -f v4l2 -list_formats all -i /dev/video0
[video4linux2 @ 0x2552ea0] R : yuyv422 : YUYV 4:2:2 : 1920x1080
[video4linux2 @ 0x2552ea0] R : nv12 : Y/CbCr 4:2:0 : 1920x1080
[video4linux2 @ 0x2552ea0] R : yuv420p : Planar YUV 4:2:0 : 1920x1080
$ v4l2-ctl -d /dev/video0 --all
Driver Info:
Driver name : uvcvideo
Card type : Cam Link 4K: Cam Link 4K
Bus info : usb-0000:01:00.0-2
Driver version : 5.4.51
Capabilities : 0x84a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : uvcvideo
Model : Cam Link 4K: Cam Link 4K
Serial : xxxxxxxxx
Bus info : usb-0000:01:00.0-2
Media version : 5.4.51
Hardware revision: 0x00000000 (0)
Driver version : 5.4.51
Interface Info:
ID : 0x03000002
Type : V4L Video
Entity Info:
ID : 0x00000001 (1)
Name : Cam Link 4K: Cam Link 4K
Function : V4L2 I/O
Flags : default
Pad 0x01000007 : 0: Sink
Link 0x0200000d: from remote pad 0x100000a of entity 'Processing 2': Data, Enabled, Immutable
Priority: 2
Video input : 0 (Input 1: ok)
Format Video Capture:
Width/Height : 1920/1080
Pixel Format : 'YU12' (Planar YUV 4:2:0)
Field : None
Bytes per Line : 1920
Size Image : 4147200
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Limited Range)
Flags :
Crop Capability Video Capture:
Bounds : Left 0, Top 0, Width 1920, Height 1080
Default : Left 0, Top 0, Width 1920, Height 1080
Pixel Aspect: 1/1
Selection: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
Selection: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
Streaming Parameters Video Capture:
Capabilities : timeperframe
Frames per second: 59.940 (7013/117)
Read buffers : 0
brightness 0x00980900 (int) : min=-128 max=127 step=1 default=0 value=0
contrast 0x00980901 (int) : min=0 max=255 step=1 default=128 value=128
saturation 0x00980902 (int) : min=0 max=255 step=1 default=128 value=128
hue 0x00980903 (int) : min=-128 max=127 step=1 default=0 value=0
CHD201
$ ffmpeg -f v4l2 -list_formats all -i /dev/video0
Compressed: mjpeg : Motion-JPEG : 1920x1080 1600x1200 1360x768 1280x1024 1280x960 1280x720 1024x768 800x600 720x576 720x480 640x480
[video4linux2,v4l2 @ 0x32ce4b0] Raw : yuyv422 : YUYV 4:2:2 : 1920x1080 1600x1200 1360x768 1280x1024 1280x960 1280x720 1024x768 800x600 720x576 720x480 640x480
$ v4l2-ctl -d /dev/video0 --all
Driver Info:
Driver name : uvcvideo
Card type : UVC Camera (534d:2109): USB Vid
Bus info : usb-0000:01:00.0-1.3
Driver version : 5.4.51
Capabilities : 0x84a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : uvcvideo
Model : UVC Camera (534d:2109): USB Vid
Serial :
Bus info : usb-0000:01:00.0-1.3
Media version : 5.4.51
Hardware revision: 0x00002100 (8448)
Driver version : 5.4.51
Interface Info:
ID : 0x03000002
Type : V4L Video
Entity Info:
ID : 0x00000001 (1)
Name : UVC Camera (534d:2109): USB Vid
Function : V4L2 I/O
Flags : default
Pad 0x01000007 : 0: Sink
Link 0x0200000d: from remote pad 0x100000a of entity 'Processing 2': Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
Width/Height : 1920/1080
Pixel Format : 'MJPG' (Motion-JPEG)
Field : None
Bytes per Line : 0
Size Image : 4147200
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
Crop Capability Video Capture:
Bounds : Left 0, Top 0, Width 1920, Height 1080
Default : Left 0, Top 0, Width 1920, Height 1080
Pixel Aspect: 1/1
Selection: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
Selection: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
Streaming Parameters Video Capture:
Capabilities : timeperframe
Frames per second: 30.000 (30/1)
Read buffers : 0
brightness 0x00980900 (int) : min=-128 max=127 step=1 default=-11 value=-11
contrast 0x00980901 (int) : min=0 max=255 step=1 default=148 value=148
saturation 0x00980902 (int) : min=0 max=255 step=1 default=180 value=180
hue 0x00980903 (int) : min=-128 max=127 step=1 default=0 value=0
詳細なログ
環境
Raspberry Pi 4B 4GB, Raspberry Pi OS
回答1件
あなたの回答
tips
プレビュー