Php 如何获得尽可能高的比特率和视频尺寸?

Php 如何获得尽可能高的比特率和视频尺寸?,php,laravel,ffmpeg,video-processing,ffmpeg-php,Php,Laravel,Ffmpeg,Video Processing,Ffmpeg Php,我正在使用一个名为pascalbaljetmedia/laravel ffmpeg 并希望为视频流创建HLS播放列表。 但首先我想检查视频比特率或宽度/高度,看看是不是4k、1080、720等等 那么我如何计算视频比特率及其维度呢 以下是我在获得视频信息后要做的事情: $video = FFMpeg::fromDisk('videos') ->open('original_video.mp4') ->exportFor

我正在使用一个名为
pascalbaljetmedia/laravel ffmpeg

并希望为视频流创建HLS播放列表。 但首先我想检查视频比特率或宽度/高度,看看是不是4k、1080、720等等

那么我如何计算视频比特率及其维度呢

以下是我在获得视频信息后要做的事情:


$video = FFMpeg::fromDisk('videos') 
               ->open('original_video.mp4') 
               ->exportForHLS();

$resolutions = [];

//check if we can make 4k version
if ( ( $bitrate >= 14000 )  ||  ( $width >= 3840 && $height >= 2160 ) ) 
{
     // Then it's a 4k video
    // We make a 4k version of HLS

    $resolutions[] = ['q' => 14000, 'size' => [ 'w' => 3840, 'h' => 2160]];

}


//check if we can make HD version
if(  ( $bitrate >= 5800 )  ||  ( $width >= 1920 && $height >= 1080 )  )

{
     // Then it's a HD video
    // We make a HD version of HLS
    $resolutions[] = ['q' => 5800, 'size' => [ 'w' => 1920, 'h' => 1080]];

}

 
//Lastly we loop through and add formarts
foreach($resolutions as $resolution){
    $video->addFormat($resolution['q'], function($media) {
        $media->addFilter('scale='. $resolution['size']['w].':'. $resolution['size']['h]);
    });
}

$video->save('video_name.m3u8');

有什么帮助吗?

我不使用Laravel,但它看起来像是
pascalbaljetmedia/Laravel ffmpeg
php ffmpeg/php ffmpeg
的包装器,所以您应该能够使用它来提取此信息

$ffprobe = FFMpeg\FFProbe::create();
$video = $ffprobe->streams('original_video.mp4')->videos()->first();
$width = $video->get('width');
$height = $video->get('height');
$bitrate = $video->get('bit_rate');

顺便说一句,您的代码行中有两个拼写错误,应该是
$media->addFilter('scale='.$resolution['size']['w'].:'.$resolution['size']['h'])

非常感谢。。我马上就去试试。