74 lines
1.8 KiB
PHP
74 lines
1.8 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Shimmie2;
|
|
|
|
abstract class VideoContainers
|
|
{
|
|
public const WEBM = MimeType::WEBM;
|
|
public const MP4 = MimeType::MP4_VIDEO;
|
|
public const OGG = MimeType::OGG_VIDEO;
|
|
public const MKV = MimeType::MKV;
|
|
|
|
public const ALL = [
|
|
VideoContainers::WEBM,
|
|
VideoContainers::MP4,
|
|
VideoContainers::OGG,
|
|
VideoContainers::MKV,
|
|
];
|
|
|
|
public const VIDEO_CODEC_SUPPORT = [
|
|
VideoContainers::WEBM => [
|
|
VideoCodecs::VP8,
|
|
VideoCodecs::VP9,
|
|
],
|
|
VideoContainers::OGG => [
|
|
VideoCodecs::THEORA,
|
|
],
|
|
VideoContainers::MP4 => [
|
|
VideoCodecs::H264,
|
|
VideoCodecs::H265,
|
|
VideoCodecs::MPEG4,
|
|
],
|
|
VideoContainers::MKV => VideoCodecs::ALL // The one container to rule them all
|
|
];
|
|
|
|
|
|
public static function is_video_codec_supported(string $container, string $codec): bool
|
|
{
|
|
return array_key_exists($container, self::VIDEO_CODEC_SUPPORT) &&
|
|
in_array($codec, self::VIDEO_CODEC_SUPPORT[$container]);
|
|
}
|
|
}
|
|
|
|
abstract class VideoCodecs
|
|
{
|
|
public const VP9 = "vp9";
|
|
public const VP8 = "vp8";
|
|
public const H264 = "h264";
|
|
public const H265 = "h265";
|
|
public const MPEG4 = "mpeg4";
|
|
public const THEORA = "theora";
|
|
|
|
public const ALL = [
|
|
VideoCodecs::VP9,
|
|
VideoCodecs::VP8,
|
|
VideoCodecs::H264,
|
|
VideoCodecs::H265,
|
|
VideoCodecs::MPEG4,
|
|
VideoCodecs::THEORA,
|
|
];
|
|
|
|
|
|
|
|
|
|
//
|
|
// public static function is_input_supported(string $engine, string $mime): bool
|
|
// {
|
|
// return MimeType::matches_array(
|
|
// $mime,
|
|
// MediaEngine::INPUT_SUPPORT[$engine]
|
|
// );
|
|
// }
|
|
}
|