记录&使用GStreamer实时预览V4L2 / dev / video0到H264文件

时间:2016-01-10 21:05:58

标签: gstreamer webcam h.264 preview v4l2

如何同时录制来自V4L2输入设备的视频并使用H.264将其编码为文件,同时看到输入的实时预览?

  • 使用GStreamer GStreamer 0.10.36
    命令gst-launch-1.0

  • 使用v4l-utils 1.6.3-3
    命令v4l2-ctl

1 个答案:

答案 0 :(得分:1)

确定可用的分辨率和格式:

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

预览,记录&同时编码:

  • "格式","宽度","高度"和#34;帧率"需要填写。

  • " keyframe_period"指定关键帧在视频中出现的频率,用于重建视频帧和(据我所知)寻求。

  • "最小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