web-dev-qa-db-ja.com

ビデオサイズが小さいh264エンコーディングを使用するgstreamer

LinuxベースのPCでUSBWebカメラを使用してビデオを録画する必要があります。 CPUのパーセンテージを下げるためにh264エンコーディングを使用するgstreamerを見つけました。しかし、私はgstreamerを初めて使用するため、gstreamerコマンドを実行するとエラーが発生しました。だから、誰かがそれを行う方法を教えてくれて、h264アクセラレーションエンコーディングを使用してgstreamerに適切なコマンドを教えてもらえますか?前もって感謝します。

使用したコマンド:

gst-launch-1.0 -v v4l2src device =/dev/video1! omxh264enc! qtmux! filesink location = test.mp4

パイプラインをPAUSEDに設定しています...パイプラインはライブであり、PREROLLは必要ありません...パイプラインをPLAYINGに設定しています...エラー:要素/ GstPipeline:pipeline0/GstV4l2Src:v4l2src0から:内部データストリームエラー。追加のデバッグ情報:gstbasesrc.c(3055):gst_base_src_loop():/ GstPipeline:pipeline0/GstV4l2Src:v4l2src0:ストリーミングが停止し、理由がネゴシエートされていません(-4)実行が0:00:00.000161565後に終了しましたパイプラインをPAUSEDに設定しています...パイプラインをREADYに設定しています...パイプラインをNULLに設定しています...パイプラインを解放しています.。

カメラ仕様:

カメラ名: 3.0 USBカメラ(GearwayElectronics(Dong Guan)Co.、Ltd)

pixel_format: YUYV422(30fps)、MJPG(圧縮)(60fps)

driver_support: uvcvide0

resolution_format: 640x480、1920x1080

V4l2からのカメラの詳細:

v4l2-ctl --info -d/dev/video2 --list-formats

ドライバー情報(libv4l2を使用しない):

ドライバー名:uvcvideo

Card type     : 3.0 USB Camera

Bus info      : usb-70090000.xusb-1.2

Driver version: 4.9.140

Capabilities  : 0x84200001

    Video Capture

    Streaming

    Extended Pix Format

    Device Capabilities

Device Caps   : 0x04200001

    Video Capture

    Streaming

    Extended Pix Format

ioctl:VIDIOC_ENUM_FMT

Index       : 0

Type        : Video Capture

Pixel Format: 'MJPG' (compressed)

Name        : Motion-JPEG



Index       : 1

Type        : Video Capture

Pixel Format: 'YUYV'

Name        : YUYV 4:2:2
1
Thoht

エンコーダーの後、マルチプレクサーの前にあるはずのh264parse要素が欠落していると思います。

gst-launch-1.0 -v v4l2src device=/dev/video1 ! omxh264enc ! h264parse ! qtmux ! filesink location=test.mp4

また、v4l2srcとエンコーダー要素の間にvideoconvert要素が必要になる場合があります。

1
Drew Thompson