gstreamer использует кодировку h264 с небольшим размером видео

Мне нужно записать видео, используя мою веб-камеру usb на моем ПК на базе Linux. Я нашел gstreamer с кодировкой h264 для снижения процента процессора. Но я новичок в gstreamer, поэтому у меня были ошибки при запуске какой-то команды gstreamer. Итак, кто-нибудь может сказать мне, как это сделать и дать мне правильную команду для gstreamer, используя ускорение кодирования h264. Заранее спасибо.

Используемая команда:

gst-launch-1.0 -v v4l2src device = / dev / video1! omxh264enc! qtmux! расположение файла files =test.mp4

Установка конвейера на PAUSED ... Конвейер активен и не нуждается в PREROLL ... Конфигурирование конвейера на PLAYING ... ОШИБКА: из элемента /GstPipeline:pipe0/GstV4l2Src:v4l2src0: Внутренняя ошибка потока данных. Дополнительная информация отладки: gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipe0/GstV4l2Src:v4l2src0: потоковая передача остановлена, причина не согласована (-4) Выполнение завершено после 0:00:00.000161565 Настройка конвейера для PAUSED ... Установка конвейера на ГОТОВ... Установка конвейера на НЕДЕЙСТВИТЕЛЬНЫЙ... Освобождение конвейера...

Спецификация камеры:

имя камеры: 3.0 USB Camera (Gearway Electronics (Dong Guan) Co., Ltd)

pixel_format: YUYV422 (30 кадров в секунду), MJPG (сжатый) (60 кадров в секунду)

driver_support: uvcvide0

разрешение_формат: 640x480, 1920x1080

Детали камеры от v4l2:

v4l2-ctl --info -d / dev / video2 --list-форматы

Информация о драйвере (без использования 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 ответ

Я полагаю, что вам не хватает элемента h264parse, который должен идти после кодировщика, перед мультиплексором.

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

Также вам может понадобиться элемент видеоконвертации между элементами v4l2src и encoder.

Другие вопросы по тегам