项目

一般

简介

Gst-inspect-10

  1. v4l2-ctl录制nv12视频
    v4l2-ctl -d /dev/video12 --set-fmt-video=width=1280,height=720,pixelformat=NV12 --stream-mmap --stream-to=1.nv12
    
  2. ffplay播放nv12视频
    ffplay -f rawvideo -pixel_format nv12 -video_size 1280x720 1.nv12
    
  3. nv12转yuv420
    ffmpeg -f rawvideo -pix_fmt nv12 -s 1280x720 -i 1.nv12 -f rawvideo -pix_fmt yuv420p 1.yuv420m
    ffmpeg -f rawvideo -pix_fmt nv12 -s 1280x720 -r 25 -i 1.nv12 -f rawvideo -pix_fmt yuv420p 1.yuv420m
    
  4. 验证文件信息
    ffprobe -f rawvideo -pixel_format yuv420p -video_size 1280x720 -i 1.yuv420m
    
  5. 使用gst-inspect-1.0将nv12视频编码成h264
    # 取消 DISPLAY 变量
    unset DISPLAY
    
    GPU: gst-launch-1.0 -e filesrc location=1.nv12 ! videoparse width=1280 height=720 format=nv12 framerate=25/1 ! nvvidconv ! 'video/x-raw(memory:NVMM), format=NV12' ! nvv4l2h264enc ! filesink location=1.h264
    CPU: gst-launch-1.0 -e filesrc location=1.nv12 ! videoparse width=1280 height=720 format=nv12 framerate=25/1 ! videoconvert ! x264enc speed-preset=fast tune=zerolatency ! filesink location=1.h264
    
    gst-inspect-1.0 nvv4l2h264enc
    
    ll /dev/v4l2-nvenc 
    crw-rw-rw- 1 root root 1, 3 Jan  1  1970 /dev/v4l2-nvenc
    在 Linux 系统中,主设备号 1 和次设备号 3 对应的是 /dev/null(空设备)。
    使用 v4l2-ctl --list-devices 查看:
    NVIDIA Tegra Video Encode (platform:tegra-video-encode):
        /dev/video31    <--- 如里有,这个才是真正的设备!
    v4l2-ctl --list-devices(没有找到“视频编码器”设备)
    NVIDIA Tegra Video Input Device (platform:tegra-capture-vi):
        /dev/media0
    
    vi-output, ar0234 9-0043 (platform:tegra-capture-vi:0):
        /dev/video12
        /dev/video13
        /dev/video14
        /dev/video15
    
    vi-output, ar0234 9-0026 (platform:tegra-capture-vi:2):
        /dev/video8
        /dev/video9
        /dev/video10
        /dev/video11
    
    vi-output, ar0234 9-0036 (platform:tegra-capture-vi:4):
        /dev/video4
        /dev/video5
        /dev/video6
        /dev/video7
    
    vi-output, ar0234 9-0052 (platform:tegra-capture-vi:5):
        /dev/video0
        /dev/video1
        /dev/video2
        /dev/video3
    注:将 nvv4l2h264enc 替换为 x264enc,使用 CPU 软件编码