Preparing videos for use with your Roku set-top-box can be accomplished very simply using one of the Roku Presets on Encoding.com. Choose a Preset, set a destination location for output files and you're up and running! There are 2 presets:
Single Bitrate output and
Adaptive Bitrate (HLS) output
1. Roku Preset for Single Bitrate output: quick setup to generate a single video output in .mp4 format
When using the web interface, select the "Roku 800kbps" preset from the Format drop-down menu to generate a static bitrate video output:
If you are sending XML to our API, use this template to make a 800kbps Roku mp4:
<format>
<output>roku_800</output>
<destination>ftp://username:password@yourserver.com/output/filename.mp4?passive=yes</destination>
<size>640x480</size>
<bitrate>800k</bitrate>
<audio_bitrate>128k</audio_bitrate>
<audio_sample_rate>44100</audio_sample_rate>
<audio_channels_number>2</audio_channels_number>
<keep_aspect_ratio>yes</keep_aspect_ratio>
<video_codec>libx264</video_codec>
<profile>roku</profile>
<audio_codec>libfaac</audio_codec>
<keyframe>200</keyframe>
<audio_volume>100</audio_volume>
<file_extension>mp4</file_extension>
</format>
2. Roku HLS Preset for Adaptive Bitrate output: quick setup to generate the index file (.m3u8) and h264 segments (.ts)
When using the web interface, select "Roku HLS" from the Format drop-down menu to generate the necessary files for adaptive streaming:
For Roku HLS adaptive bitrate API jobs, please use this XML template:
<format>
<output>roku_hls</output>
<destination>ftp://username:password@yourserver.com/output/filename.m3u8?passive=yes</destination>
<size>0x480</size>
<audio_bitrate>96k</audio_bitrate>
<audio_sample_rate>44100</audio_sample_rate>
<audio_channels_number>2</audio_channels_number>
<keep_aspect_ratio>yes</keep_aspect_ratio>
<video_codec>libx264</video_codec>
<profile>roku</profile>
<audio_codec>libfaac</audio_codec>
<audio_volume>100</audio_volume>
<bitrates>1200k,800k,600k,400k,200k,110k</bitrates>
<framerates>29.97,29.97,29.97,29.97,15,10</framerates>
<keyframes>90,90,90,90,45,30</keyframes>
<pack_files>no</pack_files>
<segment_duration>10</segment_duration>
<add_audio_only>no</add_audio_only>
<still_image>no</still_image>
</format>
Additional notes regarding Roku HLSPlease do not use two pass encoding, or you will see a blurry I-frame "popping" at the beginning of each 10 second video segment. Also, be aware that 5 different bitrates will output 30 segment (.ts) files per minute of video, so a 10-minute video will be 300 files. You will probably want to encode each video to a separate destination directory to keep your Roku organized. Otherwise, you will quickly have thousands of segment files in one directory.