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
エンコーダーの後、マルチプレクサーの前にあるはずのh264parse要素が欠落していると思います。
gst-launch-1.0 -v v4l2src device=/dev/video1 ! omxh264enc ! h264parse ! qtmux ! filesink location=test.mp4
また、v4l2srcとエンコーダー要素の間にvideoconvert要素が必要になる場合があります。