/membrane-msdk

Primary LanguageC++Apache License 2.0Apache-2.0

Membrane Multimedia Framework: IntelMediaSDK H264 Element

CircleCI

This package provides Membrane Multimedia Framework element that can be used to encode video streams using IntelMediaSDK and x264.

Documentation is available at HexDocs

Installation

Follow the Intel's guide to get the runtime and development environment installed: https://github.com/Intel-Media-SDK/MediaSDK/wiki/Intel-media-stack-on-Ubuntu

Add the following line to your deps in mix.exs. Run mix deps.get.

{:membrane_element_msdk_h264, "~> 0.1.0"}
sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev

Supported platforms

Linux x86-64, tested and docs provided for Ubuntu.

Will work on all Intel processors with graphical chipsets - basically any Intel processor that is not 10 years old.

For details check: https://github.com/intel/media-driver#supported-platformsk

Benchmarks

System: Ubuntu Intel i7-6650U CPU @ 2.20GHz (2 cores / 4 threads).

Sample: Big_Buck_Bunny_1080_10s_30MB.mp4 converted to raw format (890MB) (https://test-videos.co.uk/bigbuckbunny/mp4-h264)

Bitrate: 6000 Kbps.

Encoder Time CPU usage
simple_simple_3_encode_vmem 5s 70%
Membrane MSDK 5s 300%
Membrane FFMpeg 20s 400% (CPU is bottleneck)

Copyright and License

Copyright 2020, Software Mansion

Software Mansion