Hardware Acceleration

How to enable Intel Graphics, AMD, or NVIDIA hardware acceleration.

For detailed information about the supported hardware platforms, see About Hardware Acceleration.

To enable hardware encoding, on the output MediaPin, set the Param.HardwareEncoder parameter to HardwareEncoder.Auto. This must be done before calling Transcoder.open:

Example

# create output socket
output_socket = MediaSocket.from_preset(Preset.Video.iPad.H264_720p)

# enable hardware acceleration
out_video_pin = output_socket.pins[0]
out_video_pin.params[Param.HardwareEncoder] = HardwareEncoder.Auto

Complete Program

import sys

from avblocks import (
    Library, MediaInfo, MediaSocket, Transcoder,
    Param, Preset, HardwareEncoder
)


def main():
    Library.initialize()

    with MediaInfo() as input_info:
        input_info.inputs[0].file = "Wildlife.wmv"

        if input_info.open():
            # create input socket
            input_socket = MediaSocket.from_media_info(input_info)

            # create output socket
            output_socket = MediaSocket.from_preset(Preset.Video.iPad.H264_720p)

            # enable hardware acceleration
            out_video_pin = output_socket.pins[0]
            out_video_pin.params[Param.HardwareEncoder] = HardwareEncoder.Auto

            output_socket.file = "Wildlife.mp4"

            # configure Transcoder and run
            with Transcoder() as transcoder:
                transcoder.allow_demo_mode = True

                transcoder.inputs.add(input_socket)
                transcoder.outputs.add(output_socket)

                if transcoder.open():
                    transcoder.run()
                    transcoder.close()

    Library.shutdown()
    return 0


if __name__ == '__main__':
    sys.exit(main())