Enable other codecs in publication services

This commit is contained in:
Ingo Oppermann 2024-04-03 16:34:50 +02:00
parent 85a89b9b3a
commit 06933e47d8
No known key found for this signature in database
GPG Key ID: 2AB32426E9DD229E
7 changed files with 40 additions and 8 deletions

View File

@ -41,7 +41,7 @@ const requires = {
formats: ['flv', 'mpegts'],
codecs: {
audio: ['aac'],
video: ['h264'],
video: ['h264', 'hevc', 'vp9', 'av1'],
},
};
@ -165,6 +165,23 @@ function Service(props) {
output.options = ['-bsf:v', 'dump_extra', '-f', 'mpegts'];
} else {
output.options = ['-f', 'flv'];
if (props.skills.ffmpeg.version_major >= 6) {
const codecs = [];
if (props.skills.codecs.video.includes('hevc')) {
codecs.push('hvc1');
}
if (props.skills.codecs.video.includes('av1')) {
codecs.push('av01');
}
if (props.skills.codecs.video.includes('vp9')) {
codecs.push('vp09');
}
if (codecs.length !== 0) {
output.options.push('-rtmp_enhanced_codecs', codecs.join(','));
}
}
}
return output;

View File

@ -49,7 +49,7 @@ const requires = {
formats: ['mpegts'],
codecs: {
audio: ['aac', 'mp3'],
video: ['h264'],
video: ['h264', 'hevc', 'vp9', 'av1'],
},
};

View File

@ -46,7 +46,7 @@ const requires = {
formats: ['flv'],
codecs: {
audio: ['aac', 'mp3'],
video: ['h264'],
video: ['h264', 'hevc', 'vp9', 'av1'],
},
};
@ -108,6 +108,23 @@ function Service(props) {
const createOutput = (settings) => {
const options = ['-f', 'flv'];
if (props.skills.ffmpeg.version_major >= 6) {
const codecs = [];
if (props.skills.codecs.video.includes('hevc')) {
codecs.push('hvc1');
}
if (props.skills.codecs.video.includes('av1')) {
codecs.push('av01');
}
if (props.skills.codecs.video.includes('vp9')) {
codecs.push('vp09');
}
if (codecs.length !== 0) {
options.push('-rtmp_enhanced_codecs', codecs.join(','));
}
}
for (let key in settings.options) {
if (settings.options[key].length !== 0) {
if (key !== 'rtmp_flush_interval') {

View File

@ -50,7 +50,7 @@ const requires = {
formats: ['rtsp'],
codecs: {
audio: ['aac', 'mp3'],
video: ['h264'],
video: ['h264', 'hevc', 'vp9'],
},
};

View File

@ -47,7 +47,7 @@ const requires = {
formats: ['mpegts'],
codecs: {
audio: ['aac', 'mp3'],
video: ['h264'],
video: ['h264', 'hevc', 'vp9', 'av1'],
},
};

View File

@ -45,7 +45,7 @@ const requires = {
formats: ['mpegts'],
codecs: {
audio: ['aac', 'mp3'],
video: ['h264'],
video: ['h264', 'hevc', 'vp9', 'av1'],
},
};

View File

@ -101,8 +101,6 @@ function Service(props) {
if (settings.mode === 'rtmps') {
let options = ['-f', 'flv'];
console.log('codecs', props.skills.codecs);
if (props.skills.ffmpeg.version_major >= 6) {
const codecs = [];
if (props.skills.codecs.video.includes('hevc')) {