Видео загружено в формате

0

Я пытаюсь создать систему загрузки видео с помощью ajax -ffmpeg. Но у меня одна проблема. Проблема заключается в том, что мой php-код каждый раз содержит записанный формат видеофайла Invailed. Где я делаю неправильно, я не понимаю.

Кто-нибудь может мне помочь?

    <?php
    include_once 'includes.php';
    include_once'includes/alphaID.php';
    include_once 'includes/getExtension.php';

    $valid_formats = array("mp4", "MP4");
     if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
      {
        $name = $_FILES['videop']['name'];
        $size = $_FILES['videop']['size'];

          if(strlen($name))
           {
             $ext = strtolower(pathinfo($video_numid, PATHINFO_EXTENSION)); 
             $video_numid = alphaID(microtime(true) * 10000);
             if(in_array($ext,$valid_formats))
               {
                if($size<(50024*50024))
                  {
                   $actual_video_name = time().$uid.".".$ext;
                   $tmp = $_FILES['videop']['tmp_name'];
                   $video_numid = $_FILES['file']['name'];          
                   if(move_uploaded_file($tmp, $path.$actual_video_name))
                     {
                      shell_exec("ffmpeg -i $path.$actual_video_name.flv -f flv -s 650x390 $path.$actual_video_name.mp4");
                      shell_exec("ffmpeg -i $path.$actual_video_name.mp4 -vcodec png -ss 00:00:15 -s 650x390 -vframes 1 -an -f rawvideo $path.$actual_video_name.png");
                      $data=$Swamp->Video_Upload($uid,$actual_video_name);
                      $newdata=$Swamp->Get_Upload_Video($uid,$actual_video_name);
                 if($newdata)
                   {
                    echo '<div class="video_prew"><img src="'.$base_url.$path.$actual_video_name.'" width="100%" height="auto" class="preview_video" id="'.$newdata['id'].'"/></div>';

                    }
               }
                else
               {
               echo "Fail upload folder with read access.";
          }
      }
        else
     echo "Video file size max 10 MB";                  
   } else
     echo "Invalid file video format."; 
 } else
   echo "Please select video..!";
   exit;
 }
?>
  • 1
    Почему вы полагаетесь на расширение, чтобы увидеть поддерживаемый формат?
  • 0
    Да, вы правы, я делаю неправильно, спасибо :)
Теги:
ffmpeg

1 ответ

1
Лучший ответ

Лучший подход к проверке поддерживаемого формата - сначала прочитать информацию о файле и проанализировать его правильно. Используйте ffmpeg -i "имя файла", и это даст вам подробную информацию о мультимедийном файле, и вы можете подготовить список поддерживаемого формата видео.

Я провел некоторое исследование и обнаружил, что мы должны использовать ffprobe для получения сведений о файле. См. Ссылку для получения более подробной информации.

При чтении расширения файла вы ссылаетесь на неверную переменную.

замещать

$ext = strtolower(pathinfo($video_numid, PATHINFO_EXTENSION));

С

$ext = strtolower(pathinfo($name, PATHINFO_EXTENSION));
  • 0
    Спасибо за это. Иногда я не вижу, где я не прав :)
  • 0
    Да, вы правы, мне нужно использовать ffmpeg -i «имя файла» для предоставления сведений о мультимедийном файле, но я не смог этого сделать. не могли бы вы показать мне пример, пожалуйста?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню