From 5c7d650827cc471a03e7fa18362bcbcbe5d30838 Mon Sep 17 00:00:00 2001 From: frankdelange Date: Fri, 1 Nov 2019 02:06:19 +0100 Subject: Add audio-only option to transcoders and player This patch adds an audio-only option to PeerTube by means of a new transcoding configuration which creates mp4 files which only contain an audio stream. This new transcoder has a resolution of '0' and is presented in the preferences and in the player resolution menu as 'Audio-only' (localised). When playing such streams the player shows the file thumbnail as background and disables controls autohide. Audio-only files can be shared and streamed just like any other file. They can be downloaded as well, the resulting file will be an mp4 container with a single audio stream. This patch is a proof of concept to show the feasibility of 'true' audio-only support. There are better ways of doing this which also enable multiple audio streams for a given video stream (e.g. DASH) but as this would entail a fundamental change in the way PeerTube works it is a bridge too far for a simple proof of concept. --- server/controllers/api/config.ts | 2 ++ 1 file changed, 2 insertions(+) (limited to 'server/controllers/api') diff --git a/server/controllers/api/config.ts b/server/controllers/api/config.ts index 70e8aa970..8a00f9835 100644 --- a/server/controllers/api/config.ts +++ b/server/controllers/api/config.ts @@ -300,6 +300,7 @@ function customConfig (): CustomConfig { allowAudioFiles: CONFIG.TRANSCODING.ALLOW_AUDIO_FILES, threads: CONFIG.TRANSCODING.THREADS, resolutions: { + '0p': CONFIG.TRANSCODING.RESOLUTIONS[ '0p' ], '240p': CONFIG.TRANSCODING.RESOLUTIONS[ '240p' ], '360p': CONFIG.TRANSCODING.RESOLUTIONS[ '360p' ], '480p': CONFIG.TRANSCODING.RESOLUTIONS[ '480p' ], @@ -356,6 +357,7 @@ function convertCustomConfigBody (body: CustomConfig) { function keyConverter (k: string) { // Transcoding resolutions exception if (/^\d{3,4}p$/.exec(k)) return k + if (/^0p$/.exec(k)) return k return snakeCase(k) } -- cgit v1.2.3