mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-10 04:30:25 +02:00
add additional codec probes for transcoding profile, use mp3 instead of opus for default transcode
This commit is contained in:
@@ -40,17 +40,28 @@ import { PlayerType } from '/@/shared/types/types';
|
|||||||
|
|
||||||
const CODEC_PROBES = [
|
const CODEC_PROBES = [
|
||||||
{ codec: 'mp3', container: 'mp3', mime: 'audio/mpeg' },
|
{ codec: 'mp3', container: 'mp3', mime: 'audio/mpeg' },
|
||||||
|
|
||||||
{ codec: 'aac', container: 'mp4', mime: 'audio/mp4; codecs="mp4a.40.2"' },
|
{ codec: 'aac', container: 'mp4', mime: 'audio/mp4; codecs="mp4a.40.2"' },
|
||||||
|
{ codec: 'aac', container: 'aac', mime: 'audio/aac' },
|
||||||
|
{ codec: 'aac', container: 'mp4', mime: 'audio/x-m4a' },
|
||||||
|
|
||||||
{ codec: 'opus', container: 'ogg', mime: 'audio/ogg; codecs="opus"' },
|
{ codec: 'opus', container: 'ogg', mime: 'audio/ogg; codecs="opus"' },
|
||||||
|
{ codec: 'opus', container: 'webm', mime: 'audio/webm; codecs="opus"' },
|
||||||
|
|
||||||
{ codec: 'vorbis', container: 'ogg', mime: 'audio/ogg; codecs="vorbis"' },
|
{ codec: 'vorbis', container: 'ogg', mime: 'audio/ogg; codecs="vorbis"' },
|
||||||
|
{ codec: 'vorbis', container: 'webm', mime: 'audio/webm; codecs="vorbis"' },
|
||||||
|
|
||||||
{ codec: 'flac', container: 'flac', mime: 'audio/flac' },
|
{ codec: 'flac', container: 'flac', mime: 'audio/flac' },
|
||||||
|
|
||||||
|
{ codec: 'pcm', container: 'wav', mime: 'audio/x-wav' },
|
||||||
{ codec: 'wav', container: 'wav', mime: 'audio/wav' },
|
{ codec: 'wav', container: 'wav', mime: 'audio/wav' },
|
||||||
|
|
||||||
{ codec: 'alac', container: 'mp4', mime: 'audio/mp4; codecs="alac"' },
|
{ codec: 'alac', container: 'mp4', mime: 'audio/mp4; codecs="alac"' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const DEFAULT_TRANSCODING_PROFILES = [
|
const DEFAULT_TRANSCODING_PROFILES = [
|
||||||
{ audioCodec: 'opus', container: 'ogg', protocol: 'http' },
|
|
||||||
{ audioCodec: 'mp3', container: 'mp3', protocol: 'http' },
|
{ audioCodec: 'mp3', container: 'mp3', protocol: 'http' },
|
||||||
|
{ audioCodec: 'opus', container: 'ogg', protocol: 'http' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const DIRECT_PLAY_PROFILES: {
|
const DIRECT_PLAY_PROFILES: {
|
||||||
@@ -72,9 +83,9 @@ function detectBrowserProfile() {
|
|||||||
const audio = new Audio();
|
const audio = new Audio();
|
||||||
|
|
||||||
for (const { codec, container, mime } of CODEC_PROBES) {
|
for (const { codec, container, mime } of CODEC_PROBES) {
|
||||||
if (audio.canPlayType(mime) === 'probably') {
|
if (audio.canPlayType(mime) === 'maybe' || audio.canPlayType(mime) === 'probably') {
|
||||||
DIRECT_PLAY_PROFILES.push({
|
DIRECT_PLAY_PROFILES.push({
|
||||||
audioCodecs: [codec],
|
audioCodecs: Array.isArray(codec) ? codec : [codec],
|
||||||
containers: [container],
|
containers: [container],
|
||||||
protocols: ['http'],
|
protocols: ['http'],
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user