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. --- shared/models/videos/video-resolution.enum.ts | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'shared/models/videos') diff --git a/shared/models/videos/video-resolution.enum.ts b/shared/models/videos/video-resolution.enum.ts index fa26fc3cc..dc53294f6 100644 --- a/shared/models/videos/video-resolution.enum.ts +++ b/shared/models/videos/video-resolution.enum.ts @@ -1,6 +1,7 @@ import { VideoTranscodingFPS } from './video-transcoding-fps.model' export enum VideoResolution { + H_NOVIDEO = 0, H_240P = 240, H_360P = 360, H_480P = 480, @@ -18,6 +19,10 @@ export enum VideoResolution { */ function getBaseBitrate (resolution: VideoResolution) { switch (resolution) { + case VideoResolution.H_NOVIDEO: + // audio-only + return 64 * 1000 + case VideoResolution.H_240P: // quality according to Google Live Encoder: 300 - 700 Kbps // Quality according to YouTube Video Info: 186 Kbps -- cgit v1.2.3