Codec selection (#892)
* Query for installed codecs * Start modeling out codecs * Can now specify a codec and get the correct settings returned from the model * Return codecs in admin/serverconfig * Start handling transcoding errors and return messages to user * filter available codecs against a whitelist * Fix merge * Codecs are working * Switching between codecs work * Add apis for setting a custom video codec * Cleanup the logging of transcoder errors * Add v4l codec * Add fetching v4l * Add support for per-codec presets * Use updated nvenc encoding parameters * Update log message * Some more codec WIP * Turn off v4l. It is a mess. * Try to make the lowest latency level a bit more playable * Use a human redable display name in console messages * Turn on transcoder persistent connections * Add more codec-related user-facing error messages * Give the initial offline state transcoder an id * Force a minimum segment count of 3 * Disable qsv for now. set x264 specific params in VariantFlags * Close body in case * Ignore vbv underflow message, it is not actionable * Determine a dynamic gop value based on the length of segments * Add codec-specific tests * Cleanup * Ignore goconst lint warnings in codec file * Troubleshoot omx * Add more codec tests * Remove no longer accurate comment * Bundle admin from codec branch * Revert back to old setting * Cleanup list of codecs a bit * Remove old references to the encoder preset * Commit updated API documentation * Update admin bundle * Commit updated API documentation * Add codec setting to api spec * Commit updated API documentation Co-authored-by: Owncast <owncast@owncast.online>
This commit is contained in:
34
openapi.yaml
34
openapi.yaml
@@ -182,9 +182,9 @@ components:
|
||||
framerate:
|
||||
type: integer
|
||||
description: The target frames per second of the video.
|
||||
encoderPreset:
|
||||
type: string
|
||||
description: "The [H.264 preset value](https://trac.ffmpeg.org/wiki/Encode/H.264) selected for this HLS variant."
|
||||
cpuUsageLevel:
|
||||
type: integer
|
||||
description: "The amount of hardware utilization selected for this HLS variant."
|
||||
|
||||
TimestampedValue:
|
||||
type: object
|
||||
@@ -984,13 +984,35 @@ paths:
|
||||
- framerate: 30
|
||||
videoPassthrough: false
|
||||
videoBitrate: 1800
|
||||
encoderPreset: veryfast
|
||||
cpuUsageLevel: 2
|
||||
audioPassthrough: true
|
||||
- framerate: 24
|
||||
videoPassthrough: false
|
||||
videoBitrate: 1000
|
||||
encoderPreset: superfast
|
||||
audioPassthrough: true
|
||||
cpuUsageLevel: 3
|
||||
audioPassthrough: true
|
||||
|
||||
/api/admin/config/video/codec:
|
||||
post:
|
||||
summary: Set the video codec.
|
||||
description: Sets the specific video codec that will be used for video encoding. Some codecs will support hardware acceleration. Not all codecs will be supported for all systems.
|
||||
tags: ["Admin"]
|
||||
security:
|
||||
- AdminBasicAuth: []
|
||||
responses:
|
||||
'200':
|
||||
$ref: "#/components/responses/BasicResponse"
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
value:
|
||||
description: The video codec to change to.
|
||||
type: string
|
||||
example:
|
||||
value: libx264
|
||||
|
||||
/api/admin/config/s3:
|
||||
post:
|
||||
|
||||
Reference in New Issue
Block a user