Compare commits
17 Commits
add-cq-con
...
2ef8b2deec
Author | SHA1 | Date | |
---|---|---|---|
2ef8b2deec | |||
6a150618b9 | |||
6640ba5c25 | |||
6a47bd9e77 | |||
bdcdb2e8e5 | |||
356caf37fd | |||
8483a37bae | |||
940ca6d751 | |||
9848e0de9f | |||
de17b72171 | |||
c92e017680 | |||
4b8b0e4888 | |||
b24c0e4ef7 | |||
ae2c910f20 | |||
ee56666c33 | |||
35ffb74383 | |||
84cc3a58cd |
35
dist/main.js
vendored
35
dist/main.js
vendored
@ -146,12 +146,12 @@ function buildInitOptions() {
|
|||||||
async function vodBuilder(params) {
|
async function vodBuilder(params) {
|
||||||
const { resolution, fps, streamNum, inputBitrate } = params;
|
const { resolution, fps, streamNum, inputBitrate } = params;
|
||||||
const streamSuffix = streamNum == undefined ? '' : `:${streamNum}`;
|
const streamSuffix = streamNum == undefined ? '' : `:${streamNum}`;
|
||||||
// let targetBitrate = getTargetBitrate(resolution, fps);
|
//let targetBitrate = getTargetBitrate(resolution, fps);
|
||||||
let targetBitrate = inputBitrate;
|
let targetBitrate = inputBitrate;
|
||||||
let shouldInitVaapi = (streamNum == undefined || streamNum <= latestStreamNum);
|
let shouldInitVaapi = (streamNum == undefined || streamNum <= latestStreamNum);
|
||||||
// if (targetBitrate > inputBitrate) {
|
//if (targetBitrate > inputBitrate) {
|
||||||
// targetBitrate = inputBitrate;
|
// targetBitrate = inputBitrate;
|
||||||
// }
|
//}
|
||||||
logger.info(`Building encoder options, received ${JSON.stringify(params)}`);
|
logger.info(`Building encoder options, received ${JSON.stringify(params)}`);
|
||||||
if (shouldInitVaapi && streamNum != undefined) {
|
if (shouldInitVaapi && streamNum != undefined) {
|
||||||
latestStreamNum = streamNum;
|
latestStreamNum = streamNum;
|
||||||
@ -163,12 +163,14 @@ async function vodBuilder(params) {
|
|||||||
inputOptions: shouldInitVaapi ? buildInitOptions() : [],
|
inputOptions: shouldInitVaapi ? buildInitOptions() : [],
|
||||||
outputOptions: [
|
outputOptions: [
|
||||||
`-preset ${pluginSettings.vodQuality}`,
|
`-preset ${pluginSettings.vodQuality}`,
|
||||||
// `-b:v${streamSuffix} ${targetBitrate}`,
|
`-b:v${streamSuffix} ${targetBitrate}`,
|
||||||
// `-bufsize ${targetBitrate * 2}`,
|
//`-b:v${streamSuffix} 0`,
|
||||||
//`-crf 21`, // increased 19 to 21, file size massive
|
`-bufsize ${targetBitrate * 2}`,
|
||||||
`-profile:v${streamSuffix} high`,
|
`-profile:v${streamSuffix} high`,
|
||||||
`-cq 21`,
|
`-cq 21`,
|
||||||
`-c:v${streamSuffix} h264_nvenc`
|
`-rc:v vbr`,
|
||||||
|
`-c:v${streamSuffix} h264_nvenc`,
|
||||||
|
`-bf 4`
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
logger.info(`EncoderOptions: ${JSON.stringify(options)}`);
|
logger.info(`EncoderOptions: ${JSON.stringify(options)}`);
|
||||||
@ -180,9 +182,9 @@ async function liveBuilder(params) {
|
|||||||
// let targetBitrate = getTargetBitrate(resolution, fps);
|
// let targetBitrate = getTargetBitrate(resolution, fps);
|
||||||
let targetBitrate = inputBitrate;
|
let targetBitrate = inputBitrate;
|
||||||
let shouldInitVaapi = (streamNum == undefined || streamNum <= latestStreamNum);
|
let shouldInitVaapi = (streamNum == undefined || streamNum <= latestStreamNum);
|
||||||
// if (targetBitrate > inputBitrate) {
|
//if (targetBitrate > inputBitrate) {
|
||||||
// targetBitrate = inputBitrate;
|
// targetBitrate = inputBitrate;
|
||||||
// }
|
//}
|
||||||
logger.info(`Building encoder options, received ${JSON.stringify(params)}`);
|
logger.info(`Building encoder options, received ${JSON.stringify(params)}`);
|
||||||
if (shouldInitVaapi && streamNum != undefined) {
|
if (shouldInitVaapi && streamNum != undefined) {
|
||||||
latestStreamNum = streamNum;
|
latestStreamNum = streamNum;
|
||||||
@ -194,13 +196,16 @@ async function liveBuilder(params) {
|
|||||||
inputOptions: shouldInitVaapi ? buildInitOptions() : [],
|
inputOptions: shouldInitVaapi ? buildInitOptions() : [],
|
||||||
outputOptions: [
|
outputOptions: [
|
||||||
`-tune ${pluginSettings.liveQuality}`,
|
`-tune ${pluginSettings.liveQuality}`,
|
||||||
// `-r:v${streamSuffix} ${fps}`,
|
`-r:v${streamSuffix} ${fps}`,
|
||||||
`-profile:v${streamSuffix} high`,
|
`-profile:v${streamSuffix} high`,
|
||||||
`-c:v${streamSuffix} h264_nvenc`,
|
`-c:v${streamSuffix} h264_nvenc`,
|
||||||
`-cq 21`
|
`-cq 21`,
|
||||||
// `-g:v${streamSuffix} ${fps * 2}`,
|
`-g:v${streamSuffix} ${fps * 2}`,
|
||||||
// `-b:v${streamSuffix} ${targetBitrate}`,
|
`-b:v${streamSuffix} ${targetBitrate}`,
|
||||||
// `-bufsize ${targetBitrate * 2}`,
|
//`-b:v${streamSuffix} 0`,
|
||||||
|
`-bufsize ${targetBitrate * 2}`,
|
||||||
|
`-rc:v vbr`,
|
||||||
|
`-bf 4`
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
logger.info(`EncoderOptions: ${JSON.stringify(options)}`);
|
logger.info(`EncoderOptions: ${JSON.stringify(options)}`);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "peertube-plugin-nctv-nvenc-transcode",
|
"name": "peertube-plugin-nctv-nvenc-transcode",
|
||||||
"version": "1.0.7",
|
"version": "1.1.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"description": "Plugin that adds transcode profiles which use NVIDIA NVENC for hardware acceleration",
|
"description": "Plugin that adds transcode profiles which use NVIDIA NVENC for hardware acceleration",
|
||||||
"engine": {
|
"engine": {
|
||||||
|
Reference in New Issue
Block a user