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.
This commit is contained in:
frankdelange
2019-11-01 02:06:19 +01:00
committed by Chocobozzz
parent dee6fe1e4f
commit 5c7d650827
16 changed files with 115 additions and 14 deletions

View File

@@ -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