/** * Completes track information from a given path using ffmpeg. * @param Track $track */ public function autocompleteTrack(Track $track) { if (!$track->getPath()) { throw new \BadMethodCallException('Input track has no path defined'); } $file = $track->getPath(); $movie = new \ffmpeg_movie($file, false); $finfo = new \finfo(); if (!$this->fileHasMediaContent($finfo, $file)) { throw new \InvalidArgumentException("This file has no video nor audio tracks"); } $only_audio = true; // General $track->setMimetype($finfo->file($file, FILEINFO_MIME_TYPE)); $track->setBitrate($movie->getBitRate()); $track->setDuration(ceil($movie->getDuration())); $track->setSize(filesize($file)); if ($movie->hasVideo()) { $only_audio = false; $track->setVcodec($movie->getVideoCodec()); $track->setFramerate($movie->getFrameRate()); $track->setWidth($movie->getFrameWidth()); $track->setHeight($movie->getFrameHeight()); } if ($movie->hasAudio()) { $track->setAcodec($movie->getAudioCodec()); $track->setChannels($movie->getAudioChannels()); } $track->setOnlyAudio($only_audio); }
printf("file name = %s\n", $mov->getFileName()); printf("duration = %s seconds\n", $mov->getDuration()); printf("frame count = %s\n", $mov->getFrameCount()); printf("frame rate = %0.3f fps\n", $mov->getFrameRate()); printf("comment = %s\n", $mov->getComment()); printf("title = %s\n", $mov->getTitle()); printf("author = %s\n", $mov->getAuthor()); printf("copyright = %s\n", $mov->getCopyright()); printf("get bit rate = %d\n", $mov->getBitRate()); printf("has audio = %s\n", $mov->hasAudio() == 0 ? 'No' : 'Yes'); if ($mov->hasAudio()) { printf("get audio stream id= %s\n", $mov->getAudioStreamId()); printf("get audio codec = %s\n", $mov->getAudioCodec()); printf("get audio bit rate = %d\n", $mov->getAudioBitRate()); printf("get audio sample rate = %d \n", $mov->getAudioSampleRate()); printf("get audio channels = %s\n", $mov->getAudioChannels()); } printf("has video = %s\n", $mov->hasVideo() == 0 ? 'No' : 'Yes'); if ($mov->hasVideo()) { printf("frame height = %d pixels\n", $mov->getFrameHeight()); printf("frame width = %d pixels\n", $mov->getFrameWidth()); printf("get video stream id= %s\n", $mov->getVideoStreamId()); printf("get video codec = %s\n", $mov->getVideoCodec()); printf("get video bit rate = %d\n", $mov->getVideoBitRate()); printf("get pixel format = %s\n", $mov->getPixelFormat()); printf("get pixel aspect ratio = %s\n", $mov->getPixelAspectRatio()); $frame = $mov->getFrame(10); printf("get frame = %s\n", is_object($frame) ? 'true' : 'false'); printf(" get frame number = %d\n", $mov->getFrameNumber()); printf(" get frame width = %d\n", $frame->getWidth()); printf(" get frame height = %d\n", $frame->getHeight());
printf("<tr><td>file name:</td><td>%s<br/></td></tr>", $mov->getFileName()); printf("<tr><td>duration</td><td>%s seconds<br/></td></tr>", $mov->getDuration()); printf("<tr><td>frame count</td><td>%s<br/></td></tr>", $mov->getFrameCount()); printf("<tr><td>frame rate</td><td>%0.3f fps<br/></td></tr>", $mov->getFrameRate()); printf("<tr><td>comment</td><td>%s<br/></td></tr>", $mov->getComment()); printf("<tr><td>title</td><td>%s<br/></td></tr>", $mov->getTitle()); printf("<tr><td>author</td><td>%s<br/></td></tr>", $mov->getAuthor()); printf("<tr><td>copyright</td><td>%s<br/></td></tr>", $mov->getCopyright()); printf("<tr><td>get bit rate</td><td>%d<br/></td></tr>", $mov->getBitRate()); printf("<tr><td>has audio</td><td>%s<br/></td></tr>", $mov->hasAudio() == 0 ? 'No' : 'Yes'); if ($mov->hasAudio()) { printf("<tr><td>get audio stream id</td><td>%s<br/></td></tr>", $mov->getAudioStreamId()); printf("<tr><td>get audio codec</td><td>%s<br/></td></tr>", $mov->getAudioCodec()); printf("<tr><td>get audio bit rate</td><td>%d<br/></td></tr>", $mov->getAudioBitRate()); printf("<tr><td>get audio sample rate</td><td>%d<br/></td></tr>", $mov->getAudioSampleRate()); printf("<tr><td>get audio channels</td><td>%s<br/></td></tr>", $mov->getAudioChannels()); } printf("<tr><td>has video</td><td>%s<br/></td></tr>", $mov->hasVideo() == 0 ? 'No' : 'Yes'); if ($mov->hasVideo()) { printf("<tr><td>frame height</td><td>%d pixels<br/></td></tr>", $mov->getFrameHeight()); printf("<tr><td>frame width</td><td>%d pixels<br/></td></tr>", $mov->getFrameWidth()); printf("<tr><td>get video stream id</td><td>%s<br/></td></tr>", $mov->getVideoStreamId()); printf("<tr><td>get video codec</td><td>%s<br/></td></tr>", $mov->getVideoCodec()); printf("<tr><td>get video bit rate</td><td>%d<br/></td></tr>", $mov->getVideoBitRate()); printf("<tr><td>get pixel format</td><td>%s<br/></td></tr>", $mov->getPixelFormat()); printf("<tr><td>get pixel aspect ratio</td><td>%s<br/></td></tr>", $mov->getPixelAspectRatio()); printf("<tr><td>get frame</td><td>%s<br/></td></tr>", is_object($mov->getFrame(10)) ? 'true' : 'false'); printf("<tr><td>get frame number</td><td>%d<br/></td></tr>", $mov->getFrameNumber()); $thumbpath = "{$i}.png"; if (make_test_thumbnail(rand(1, 100), $mov->getFilename(), $thumbpath)) { printf('<tr><td>Random Thumbnail</td><td><img alt="Test Image" src="%s"/></td></tr>', $thumbpath);
shell_exec("ffmpeg -threads {$th} -i {$tmp}{$pelnomf}.VOB -vcodec libx264 -vb {$bit} -maxrate {$bit} -bufsize 1000k -s hd720 -acodec libfaac -ab {$bita} -ac 2 {$diref}{$pelnomf}.mp4"); shell_exec("rm -Rf {$tmp}{$pelnomf}"); shell_exec("rm -Rf {$tmp}{$pelnomf}.VOB"); } else { //Formatos tradicionales de video $pelif = "../files/{$files5}"; $varpel = new ffmpeg_movie($pelif); //obtener ancho y alto original del video $ancho = $varpel->getFrameWidth(); $alto = $varpel->getFrameHeight(); //Hz del audio $hz = $varpel->getAudioSampleRate(); //Framer por segundo $fps = $varpel->getFrameRate(); //Canales $canales = $varpel->getAudioChannels(); // Formula para convertir alto equivalente para ancho 720 $calcula = $HD * $alto / $ancho; if ($calcula % 2 == 0) { $altof = "{$calcula}"; } else { $altof = ++$calcula; } // Fin de Formula //Resolucion $x = "x"; if ($ancho >= $HD) { $resolucion = "{$HD}{$x}{$altof}"; } else { $resolucion = "{$ancho}{$x}{$alto}"; }