Enable other codecs in publication services
This commit is contained in:
parent
85a89b9b3a
commit
06933e47d8
@ -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;
|
||||
|
||||
@ -49,7 +49,7 @@ const requires = {
|
||||
formats: ['mpegts'],
|
||||
codecs: {
|
||||
audio: ['aac', 'mp3'],
|
||||
video: ['h264'],
|
||||
video: ['h264', 'hevc', 'vp9', 'av1'],
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@ -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') {
|
||||
|
||||
@ -50,7 +50,7 @@ const requires = {
|
||||
formats: ['rtsp'],
|
||||
codecs: {
|
||||
audio: ['aac', 'mp3'],
|
||||
video: ['h264'],
|
||||
video: ['h264', 'hevc', 'vp9'],
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ const requires = {
|
||||
formats: ['mpegts'],
|
||||
codecs: {
|
||||
audio: ['aac', 'mp3'],
|
||||
video: ['h264'],
|
||||
video: ['h264', 'hevc', 'vp9', 'av1'],
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ const requires = {
|
||||
formats: ['mpegts'],
|
||||
codecs: {
|
||||
audio: ['aac', 'mp3'],
|
||||
video: ['h264'],
|
||||
video: ['h264', 'hevc', 'vp9', 'av1'],
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@ -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')) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user