質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Video4Linux

Video4Linuxは、Linuxでビデオキャプチャデバイスを制御するためのAPI仕様の名称です。ビデオキャプチャに限らず、操作のためのAPIも用意されており、テレビやAM/FMラジオ、Teletext といった放送を観ることも可能です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

FFmpeg

FFmpegは、動画と音声を交換できるフリーソフトウェアです。UNIX系OSから派生した、MS-DOSから操作するコマンドラインツールです。libavcodecやlibavformat、libswscale、libavfilterなどを含みます。ライセンスは、コンパイルの際のオプションによりLGPLもしくはGPLに決定されます。対応コーデックや使用できるオプションが多く、幅広く利用されています。

Q&A

解決済

1回答

4779閲覧

v4l2でのバッファエラー

oks

総合スコア1

Video4Linux

Video4Linuxは、Linuxでビデオキャプチャデバイスを制御するためのAPI仕様の名称です。ビデオキャプチャに限らず、操作のためのAPIも用意されており、テレビやAM/FMラジオ、Teletext といった放送を観ることも可能です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

FFmpeg

FFmpegは、動画と音声を交換できるフリーソフトウェアです。UNIX系OSから派生した、MS-DOSから操作するコマンドラインツールです。libavcodecやlibavformat、libswscale、libavfilterなどを含みます。ライセンスは、コンパイルの際のオプションによりLGPLもしくはGPLに決定されます。対応コーデックや使用できるオプションが多く、幅広く利用されています。

0グッド

0クリップ

投稿2020/10/10 08:31

編集2020/10/14 14:36

目的

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

詳細なログ

文字数不足のためスクショで失礼します.
バッファのエラーが延々と表示され続けるので,Ctrl+Cで止めています

環境

Raspberry Pi 4B 4GB, Raspberry Pi OS

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oks

2020/10/14 14:38

ご対応ありがとうございます. スクショではございますが,ログを追加しました. いただいたリンク先の方と同じような状況ですね(パラメータは違いますが)
guest

回答1

0

ベストアンサー

下記も近しい現象ですかね。
FFmpegのソースコードをいじって対応する必要がありそうな雰囲気を感じますが。
https://www.raspberrypi.org/forums/viewtopic.php?t=270023

投稿2020/11/13 14:39

sukekeke0

総合スコア331

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問