如何在Ubuntu环境下,使用硬件视频解码?



  • 在使用AI KIT进行机器视觉开发的时候,如何使用高通845的GPU提供的硬件视频解码功能?
    Android和Ubuntu是否有不同?
    AI KIT的内置Camera和USBCamera处理过程是否有不同?



  • 如何通过gstreamer plugin使用高通的硬编解码功能:
    1、开发板可以上网后,依次安装gst相关的包。
    adb shell中执行下面的命令。

    apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-
    good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
    gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x

    如果安装中提示无法下载一些包之类的错误,请先执行
    apt-get update

    2、使用例子说明
    a、硬解码:
    adb push H264_320_240_30fps.mp4 /data/input/ adb shell执行下面的命令

    export GST_REGISTRY=/data/gstreamer-1.0/registry.$(uname -m).bin
    export GST_REGISTRY_UPDATE=no
    gst-inspect-1.0 > /dev/null
    gst-launch-1.0 filesrc location=/data/input/320_240_30fps.mp4 ! qtdemux
    name=demux demux. ! queue ! h264parse ! omxh264dec ! filesink
    location=/data/output/320_240_30.yuv -e

    b、硬编码:
    adb push 320_240.yuv /data/input
    adb shell执行下面的命令

    export GST_REGISTRY=/data/gstreamer-1.0/registry.$(uname -m).bin
    export GST_REGISTRY_UPDATE=no
    gst-inspect-1.0 > /dev/null
    gst-launch-1.0 -e -vv filesrc location=/data/input/320_240.yuv ! videoparse
    width=320 height=240 format=nv12 framerate=30 ! omxh264enc target-bitrate=3000000
    quant-p-frames=29 quant-b-frames=0 control-rate=variable ! 'video/x-
    h264,streamformat=(string)byte-stream,profile=high' ! h264parse ! filesink
    location=/data/output/320_240.h264_30


 

Copyright © 2019. Thundercomm | Record license ICP No. 16006224 All rights reserved.