Roku Premiere+ profile issues/updates (AC3)
I was having some issues with transcoding to my Roku Premiere+ regarding the audio. After a long wild goose chase playing with my ffmpeg build process eventually I discovered that the Roku doesn't seem to handle AC-3 audio streams.
I don't know for certain but I suspect it may be related to this note in the Roku documentation I kept not scrolling down far enough to see:
Most Roku players will only pass-through Dolby Audio™ (AC3, E-AC3). To decode multi-channel surround sound, you must connect your Roku player via HDMI® or S/PDIF (optical) to a TV or A/V receiver capable of decoding Dolby Digital (AC3) or Dolby Digital Plus™ (E-AC3).
While I am running HDMI to the TV (the only option for this device) and SPDIF to my A/V receiver the receiver is old and may not support AC3. To make it function I had to update my profile to transcode to AAC:
- Code:
<Profile id="Roku4kMPApp" name="Roku 4K Media Player (2016+)" extendsProfileId="RokuMPApp">
<!-- NOTE:
-This profile does not restrict the audio to 2 channel stereo. If you are encountering audio issues, add forceStereo="true" to the
targetContainer line after the targetACodec setting.
-These Roku models should be able to play videos without requiring the maxVBitrate setting. You can experiment if desired.
-Roku players do not support mepg2 video.
-Every effort has been made to capture videos correctly. If you discover a file being transcoded unnecessarily, please report it
in the Serviio forum in the Transcoding section.
-->
<Transcoding>
<!-- transcode HD video unsupported by device, transcode audio regardless of codec -->
<Video targetContainer="mpegts" targetVCodec="h264" targetACodec="aac" aBitrate="512">
<Matches container="*" vCodec="vc1" />
</Video>
<!-- Remux h264 video stream, transcode audio only -->
<Video targetContainer="mpegts" targetACodec="aac" aBitrate="512">
<Matches container="*" vCodec="h264" aCodec="truehd" />
<!-- if you have audio issues with DTS Master Audio, uncomment the following line to transcode DTS-MA to DD -->
<!-- I don't know if I hae any DTS-HD files but I uncommented this to just in case given I've been having issues-->
<Matches container="*" vCodec="h264" aCodec="dts-hd" />
<!-- Had to add this because my files that had ac3 audio already also wouldn't play-->
<Matches container="*" vCodec="h264" aCodec="ac3" />
</Video>
<!-- Transcode non-H.264 video or FLAC audio -->
<Video targetContainer="mpegts" targetVCodec="h264" targetACodec="aac" >
<Matches container="*" vCodec="wmv2"/>
<Matches container="*" aCodec="flac"/>
<Matches container="*" vCodec="mpeg1video"/>
<Matches container="*" vCodec="mpeg2video" />
<!-- transcode non-supported containers regardless of codec -->
<Matches container="wtv"/>
<Matches container="avi" />
<Matches container="mpegvideo"/>
<Matches container="mpeg"/>
</Video>
<!-- Remux audio and video streams - for DivX/Xvid in AVI/Matroska -->
<Video targetContainer="mpegts">
<Matches container="*" vCodec="mpeg4" aCodec="aac" />
<Matches container="*" vCodec="msmpeg4" aCodec="aac" />
</Video>
<!-- if you have issues playing audio files, uncomment the following section to transcode MP3 -->
<!-- <Audio targetContainer="mp3">
<Matches container="*" />
</Audio> -->
</Transcoding>
<OnlineTranscoding>
<Video targetContainer="applehttp"> <!-- dont transcode to ac3 -->
<Matches container="mp4" />
<Matches container="flv" vCodec="h264" />
</Video>
</OnlineTranscoding>
<GenericTranscoding>
<Video targetContainer="mpegts" targetVCodec="h264" targetACodec="ac3" />
</GenericTranscoding>
<LimitImageResolution>false</LimitImageResolution>
</Profile>
There is already the note about trying forceStereo=true but I tried that without success before I made the switch to AAC. I then removed it afterword since it didn't seem necessary.
It's now working great for me and playing all my videos in all the various formats they are in. Given the comment I figured I should come here and share my experiences.