2016-01-10 8 views
2

Как записывать только видео с устройства ввода V4L2 и кодировать его в файл с использованием H.264, одновременно просматривая предварительный просмотр входа?Запись и просмотр в прямом эфире V4L2/dev/video0 в файл H264 с помощью GStreamer

  • Использование GStreamer GStreamer 0.10.36
    Команда gst-launch-1.0

  • Использование v4l-Utils 1.6.3-3
    Команда v4l2-ctl

ответ

1

Определить доступные разрешения и форматы:

v4l2-ctl -d /dev/video0 --list-formats-ext 

Предварительный просмотр, запись & закодировать в то же время:

  • "формат"

    , "ширина", "высота" и "фреймрейт" необходимо заполнить.

  • «keyframe_period» указывает, как часто в видео появляется ключевой кадр, который используется для восстановления и (по моему мнению) поиска.

  • «min-qp» указывает качество сжатия, когда нижнее означает лучшее качество.

:

gst-launch-1.0 v4l2src device=/dev/video0 ! \ 
    video/x-raw,format=YV12,width=960,height=544,framerate=30/1 ! \ 
    tee name=t ! \ 
    queue ! \ 
    autovideosink sync=false t. ! \ 
    videorate ! \ 
    queue ! \ 
    vaapiencode_h264 keyframe_period=5 tune=high-compression min-qp=50 ! \ 
    queue ! \ 
    mpegtsmux ! \ 
    filesink location=FIRST.mp4 

(.. По некоторым причинам полученный FIRST.mp4 не может быть что-то добившиеся о недействительных отметок времени)

Восстановление контейнера mp4 без повторного кодирования производит файл с возможностью поиска mp4:

ffmpeg -i FIRST.mp4 -c:v copy SECOND.mp4 

 Смежные вопросы

  • Нет связанных вопросов^_^