1
0
Fork 0

Fix tests

This commit is contained in:
Chocobozzz 2018-10-17 13:10:58 +02:00
parent f365e978ed
commit 0229b014e0
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 12 additions and 11 deletions

View File

@ -118,11 +118,13 @@ function transcode (options: TranscodeOptions) {
return new Promise<void>(async (res, rej) => {
let fps = await getVideoFileFPS(options.inputPath)
// On small/medium resolutions, limit FPS
if (options.resolution !== undefined &&
options.resolution < VIDEO_TRANSCODING_FPS.KEEP_ORIGIN_FPS_RESOLUTION_MIN &&
fps > VIDEO_TRANSCODING_FPS.AVERAGE) {
fps = VIDEO_TRANSCODING_FPS.AVERAGE
}
// if (
// options.resolution !== undefined &&
// options.resolution < VIDEO_TRANSCODING_FPS.KEEP_ORIGIN_FPS_RESOLUTION_MIN &&
// fps > VIDEO_TRANSCODING_FPS.AVERAGE
// ) {
// fps = VIDEO_TRANSCODING_FPS.AVERAGE
// }
let command = ffmpeg(options.inputPath, { niceness: FFMPEG_NICE.TRANSCODING })
.output(options.outputPath)
@ -321,12 +323,12 @@ async function presetH264 (ffmpeg: ffmpeg, resolution: VideoResolution, fps: num
// https://slhck.info/video/2017/03/01/rate-control.html
// https://trac.ffmpeg.org/wiki/Limiting%20the%20output%20bitrate
const targetBitrate = getTargetBitrate(resolution, fps, VIDEO_TRANSCODING_FPS)
localFfmpeg.outputOptions([`-maxrate ${ targetBitrate }`, `-bufsize ${ targetBitrate * 2 }`])
localFfmpeg = localFfmpeg.outputOptions([`-maxrate ${ targetBitrate }`, `-bufsize ${ targetBitrate * 2 }`])
// Keyframe interval of 2 seconds for faster seeking and resolution switching.
// https://streaminglearningcenter.com/blogs/whats-the-right-keyframe-interval.html
// https://superuser.com/a/908325
localFfmpeg.outputOption(`-g ${ fps * 2 }`)
localFfmpeg = localFfmpeg.outputOption(`-g ${ fps * 2 }`)
return localFfmpeg
}

View File

@ -109,6 +109,7 @@ export class UserModel extends Model<UserModel> {
nsfwPolicy: NSFWPolicyType
@AllowNull(false)
@Default(true)
@Is('UserWebTorrentEnabled', value => throwIfNotValid(value, isUserWebTorrentEnabledValid, 'WebTorrent enabled'))
@Column
webTorrentEnabled: boolean

View File

@ -50,8 +50,7 @@ function getBaseBitrate (resolution: VideoResolution) {
* getBaseBitrate() * 1.4. All other values are calculated linearly
* between these two points.
*/
export function getTargetBitrate (resolution: VideoResolution, fps: number,
fpsTranscodingConstants: VideoTranscodingFPS) {
export function getTargetBitrate (resolution: VideoResolution, fps: number, fpsTranscodingConstants: VideoTranscodingFPS) {
const baseBitrate = getBaseBitrate(resolution)
// The maximum bitrate, used when fps === VideoTranscodingFPS.MAX
// Based on numbers from Youtube, 60 fps bitrate divided by 30 fps bitrate:
@ -71,7 +70,6 @@ export function getTargetBitrate (resolution: VideoResolution, fps: number,
/**
* The maximum bitrate we expect to see on a transcoded video in bytes per second.
*/
export function getMaxBitrate (resolution: VideoResolution, fps: number,
fpsTranscodingConstants: VideoTranscodingFPS) {
export function getMaxBitrate (resolution: VideoResolution, fps: number, fpsTranscodingConstants: VideoTranscodingFPS) {
return getTargetBitrate(resolution, fps, fpsTranscodingConstants) * 2
}