PHP में वीडियो अवधि, आयाम और आकार कैसे प्राप्त करें?




video ffmpeg (4)

https://github.com/JamesHeinrich/getID3 getid3 ज़िप डाउनलोड https://github.com/JamesHeinrich/getID3 और केवल getid3 नाम से फ़ोल्डर फ़ोल्डर में फ़ोल्डर कॉपी पेस्ट नामित करें और इसे नीचे दिखाएं ...

<?php
        require_once('/fire/scripts/lib/getid3/getid3/getid3.php');
        $getID3 = new getID3();
        $filename="/fire/My Documents/video/ferrari1.mpg";
        $fileinfo = $getID3->analyze($filename);

        $width=$fileinfo['video']['resolution_x'];
        $height=$fileinfo['video']['resolution_y'];

        echo $fileinfo['video']['resolution_x']. 'x'. $fileinfo['video']['resolution_y'];
        echo '<pre>';print_r($fileinfo);echo '</pre>';
?>

मैं जानना चाहता हूं कि PHP में अपलोड की गई वीडियो फ़ाइल की अवधि, आयाम और आकार कैसे प्राप्त करें। फ़ाइल किसी भी वीडियो प्रारूप में हो सकती है।


getID3 वीडियो प्रारूपों का समर्थन करता है। देखें: http://getid3.sourceforge.net/

संपादित करें: तो, कोड प्रारूप में, यह इस तरह होगा:

include_once('pathto/getid3.php');
$getID3 = new getID3;
$file = $getID3->analyze($filename);
echo("Duration: ".$file['playtime_string'].
" / Dimensions: ".$file['video']['resolution_x']." wide by ".$file['video']['resolution_y']." tall".
" / Filesize: ".$file['filesize']." bytes<br />");

नोट: इससे पहले कि आप काम करेंगे, आपको getID3 कक्षाएं शामिल करनी होंगी! उपरोक्त लिंक देखें।

संपादित करें: यदि आपके पास अपने सर्वर पर PHP स्थापना को संशोधित करने की क्षमता है, तो इस उद्देश्य के लिए एक PHP एक्सटेंशन ffmpeg-php है। देखें: http://ffmpeg-php.sourceforge.net/


अगर आपके पास अपने सर्वर ( http://www.mysql-apache-php.com/ffmpeg-install.htm ) पर FFMPEG इंस्टॉल है, तो " vvatsats " कमांड का उपयोग करके अपने वीडियो के गुण प्राप्त करना और संभव है परिणाम कुछ regex के साथ - जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है। फिर, आकार प्राप्त करने के लिए आपको PHP funtion filesize () की आवश्यकता है।

$ffmpeg_path = 'ffmpeg'; //or: /usr/bin/ffmpeg , or /usr/local/bin/ffmpeg - depends on your installation (type which ffmpeg into a console to find the install path)
$vid = 'PATH/TO/VIDEO'; //Replace here!

 if (file_exists($vid)) {

    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $mime_type = finfo_file($finfo, $vid); // check mime type
    finfo_close($finfo);

    if (preg_match('/video\/*/', $mime_type)) {

        $video_attributes = _get_video_attributes($vid, $ffmpeg_path);

        print_r('Codec: ' . $video_attributes['codec'] . '<br/>');

        print_r('Dimension: ' . $video_attributes['width'] . ' x ' . $video_attributes['height'] . ' <br/>');

        print_r('Duration: ' . $video_attributes['hours'] . ':' . $video_attributes['mins'] . ':'
                . $video_attributes['secs'] . '.' . $video_attributes['ms'] . '<br/>');

        print_r('Size:  ' . _human_filesize(filesize($vid)));

    } else {
        print_r('File is not a video.');
    }
} else {
    print_r('File does not exist.');
}

function _get_video_attributes($video, $ffmpeg) {

    $command = $ffmpeg . ' -i ' . $video . ' -vstats 2>&1';
    $output = shell_exec($command);

    $regex_sizes = "/Video: ([^,]*), ([^,]*), ([0-9]{1,4})x([0-9]{1,4})/"; // or : $regex_sizes = "/Video: ([^\r\n]*), ([^,]*), ([0-9]{1,4})x([0-9]{1,4})/"; (code from @1owk3y)
    if (preg_match($regex_sizes, $output, $regs)) {
        $codec = $regs [1] ? $regs [1] : null;
        $width = $regs [3] ? $regs [3] : null;
        $height = $regs [4] ? $regs [4] : null;
    }

    $regex_duration = "/Duration: ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}).([0-9]{1,2})/";
    if (preg_match($regex_duration, $output, $regs)) {
        $hours = $regs [1] ? $regs [1] : null;
        $mins = $regs [2] ? $regs [2] : null;
        $secs = $regs [3] ? $regs [3] : null;
        $ms = $regs [4] ? $regs [4] : null;
    }

    return array('codec' => $codec,
        'width' => $width,
        'height' => $height,
        'hours' => $hours,
        'mins' => $mins,
        'secs' => $secs,
        'ms' => $ms
    );
}

function _human_filesize($bytes, $decimals = 2) {
    $sz = 'BKMGTP';
    $factor = floor((strlen($bytes) - 1) / 3);
    return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];
}

यदि आप वर्डप्रेस का उपयोग करते हैं तो आप केवल wp_get_attachment_metadata($videoID): प्रदान की गई वीडियो आईडी के साथ फ़ंक्शन में वर्डप्रेस बिल्ड का उपयोग कर सकते हैं wp_get_attachment_metadata($videoID):

wp_get_attachment_metadata($videoID);

मुझे बहुत मदद की। यही कारण है कि मैं इसे पोस्ट कर रहा हूं, हालांकि 2011 में सवाल पूछा गया था।





duration