Feature Request: Add mp4 as a supported targetContainer
Hello Serviio team,
First, thank you for developing and maintaining Serviio, which is an incredible media server.
I would like to request a feature addition regarding the streaming profile configurations (user-profiles.xml). Currently, Serviio's live streaming engine supports output containers like mpegts, mpeg, asf, and applehttp, but it does not allow specifying mp4 as a targetContainer.
The Context & Problem:
Nowadays, the vast majority of media files distributed over networks (such as via BitTorrent) come natively packaged as Matroska (.mkv) files, whereas pre-muxed .mp4 files are becoming increasingly rare.
Many DLNA clients (such as Sony Bravia TVs) handle MP4 files perfectly—including video (AVC/HEVC), audio (AC-3/EAC-3), and text-based soft subtitles (mov_text / tx3g). However, when Serviio intercepts an MKV file and streams it via network mpegts, these clients often fail to parse text subtitles or handle audio streams properly.
Right now, the only workaround is to manually pre-convert files using a simple FFmpeg command before adding them to the library:
ffmpeg -i video.mkv -c copy -c:s mov_text video.mp4
The Proposed Solution & Benefit:
Allow mp4 (or fragmented MP4 / fMP4 if needed for live streaming architecture) as an option for targetContainer within the profile definitions.
Since this operation only requires a lightweight stream remuxing (copying video and audio codecs without re-encoding, e.g., -c copy), adding mp4 support would allow Serviio to serve these files via Direct Play on-the-fly. This would drastically reduce CPU overhead on the server side while ensuring full compatibility with clients that natively prefer MP4 over MPEG-TS.
Would it be technically feasible to implement MP4 container output for the live streaming engine in a future release?
Thank you very much for your time and consideration!
First, thank you for developing and maintaining Serviio, which is an incredible media server.
I would like to request a feature addition regarding the streaming profile configurations (user-profiles.xml). Currently, Serviio's live streaming engine supports output containers like mpegts, mpeg, asf, and applehttp, but it does not allow specifying mp4 as a targetContainer.
The Context & Problem:
Nowadays, the vast majority of media files distributed over networks (such as via BitTorrent) come natively packaged as Matroska (.mkv) files, whereas pre-muxed .mp4 files are becoming increasingly rare.
Many DLNA clients (such as Sony Bravia TVs) handle MP4 files perfectly—including video (AVC/HEVC), audio (AC-3/EAC-3), and text-based soft subtitles (mov_text / tx3g). However, when Serviio intercepts an MKV file and streams it via network mpegts, these clients often fail to parse text subtitles or handle audio streams properly.
Right now, the only workaround is to manually pre-convert files using a simple FFmpeg command before adding them to the library:
ffmpeg -i video.mkv -c copy -c:s mov_text video.mp4
The Proposed Solution & Benefit:
Allow mp4 (or fragmented MP4 / fMP4 if needed for live streaming architecture) as an option for targetContainer within the profile definitions.
Since this operation only requires a lightweight stream remuxing (copying video and audio codecs without re-encoding, e.g., -c copy), adding mp4 support would allow Serviio to serve these files via Direct Play on-the-fly. This would drastically reduce CPU overhead on the server side while ensuring full compatibility with clients that natively prefer MP4 over MPEG-TS.
Would it be technically feasible to implement MP4 container output for the live streaming engine in a future release?
Thank you very much for your time and consideration!