VP8/VP9/h.264/h.265 code on X86

Discussion in 'UDOO X86' started by Tomek, Jul 6, 2017.

  1. Tomek

    Tomek UDOOer

    Joined:
    Jul 6, 2017
    Messages:
    4
    Likes Received:
    0
    Hi.

    Did anybody try to compress (e.g. via ffmpeg or gstreamer) video from raw data to VP8/VP9/h.264/h.265 on one any of x86 devices?

    Best regards,
    Tomek
     
  2. Eponymous

    Eponymous New Member

    Joined:
    May 12, 2017
    Messages:
    6
    Likes Received:
    0
    Yes, I have been using FFMPEG (built from source) with hardware acceleration (h264_vaapi) to transcode video from mpeg2 to h.264. Getting it setup took a bit of doing. I'm running Arch Linux and was able to modify the ffmpeg-git package's compilation options to enable hardware acceleration. Along the way, I found this gist very helpful. I was new to ffmpeg, so getting it all to work probably took longer than it should have.

    I gave up on implementing hardware decoding. It doesn't seem to be available on linux w/ vaapi and my attempts at getting QSV to work failed. The internet seems much more interested in getting hardware encoding to work than decoding, from which I've inferred that the relative benefit of the one is greater than the other.
     
  3. ccs_hello

    ccs_hello UDOOer

    Joined:
    Apr 15, 2017
    Messages:
    536
    Likes Received:
    194
    A lot of work is involved in optimizing CPU-based (software-)decoding on various codecs and all kind of profiles. Even more work is involved in GPU-assisted (hardware-)decoding. Latter is closed to dark magic.
    Encoding is much, much harder.
    Bottom-line is this: Intel sells main-stream CPU/GPU priced from one hundred up to one thousand dollars, while some of the ATOM SoCs are listed at $14. A commercial high-end specialized video encoder can go up to $30,000 a pop.
    If if there is a free lunch (if at all), it will be well hidden.

    BTW, current UDOO x86 family of boards are all ATOM based.

    ccs_hello
     
    LDighera likes this.
  4. Tomek

    Tomek UDOOer

    Joined:
    Jul 6, 2017
    Messages:
    4
    Likes Received:
    0
    Do you think that system installed on eMMC or RAM card could be a bottleneck or it is all about CPU/GPU?
     
  5. ccs_hello

    ccs_hello UDOOer

    Joined:
    Apr 15, 2017
    Messages:
    536
    Likes Received:
    194
    All about GPU and CPU. GPU would have worked the best.
    CPU will spend at least 5x the labor (if AVX2 instruction set is used) and
    will spend 30x or more effort if AVX2 is not supported.

    You should be able to guess what those $14 ATOM class CPUs can and cannot support.
    Do you think Intel is that dumb? Do you think how those $30000 specialized gear mfgs will go bankrupt tomorrow?
     
  6. samholton

    samholton New Member

    Joined:
    May 22, 2017
    Messages:
    26
    Likes Received:
    6
    I'm using ffmpeg as well with h264_vaapi

    Input video is OTA
    Code:
    Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Doing CPU encode the load is around 3.5 and runs around 3-5 fps. Using h264_vaapi my load is about 0.7 and it runs around 40fps.
     
    ccs_hello likes this.
  7. Tomek

    Tomek UDOOer

    Joined:
    Jul 6, 2017
    Messages:
    4
    Likes Received:
    0
    The best option is to use GPU in order to compress video. If I want just to install Linux and encode video isn't better option to look at hardware based on ARM, e.g. ASUS Tinker Board (Mali-T764 GPU) or ODROID-C2 (Mali™-450 GPU)?
     

Share This Page