Snippets

Krzysztof Ożóg Example FFProbe classs usage

You are viewing an old version of this snippet. View the current version.
Revised by Krzysztof Ożóg c581751
<?php

public function getVideoMetadata(Video $video)
{
        [...]
        $rootPath = $this->getVideosRootPath();
        $ext = pathinfo($video->getOriginal());
        $filepath  = $rootPath.'/'.$video->getUploadToken().'.'.$ext['extension'];
        $video->setSize(filesize($filepath));

        $ffprobe = $this->getFFProbe(); // just construct of FFMProbe class
        $videoData = json_decode($ffprobe->probeStreams($filepath), true);
        $video->setData($videoData);

        $videoFormat = array();
        // get first video stream 
        foreach ($videoData as $format) {
            if ($format['codec_type'] == 'video') {
                $videoFormat = $format;
                break;
            }
        }

        $video->setDuration((int) $videoFormat['duration']);

        [...]
   
}
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.