2015-07-24 2 views
0

Я делаю api для своего приложения для Android, используя Slim framework. Но когда я загружаю видео на локальный сервер из своего приложения Android, вызывая api, он генерирует белое миниатюру для видео в моем приложении. могу ли я получить миниатюру для загруженного видео.white thumbnail для загруженного видео в приложении android

Мой код для создания АФИ:

$app->post('/do_upload', 'authentication', function() use ($app) { 
    verifyRequiredParams(array('albumId')); 
    global $user_id; 

    $response = array(); 
    $file_path = "../uploads/$user_id/photo_gallery/thumbnails/"; 

    if (!file_exists($file_path)) { 
     mkdir($file_path, 0777, true); 
    } 
    $thumbnail = $user_id . "/photo_gallery/thumbnails/"; 
    $response = array(); 

    if (isset($_FILES["files"])) { 
     $temp = explode(".", $_FILES['files']['name']); 
     $detectedType = $_FILES["files"]["name"]; 
     $filetype = substr($detectedType, strpos($detectedType, ".") + 1); 
     $newfilename = 'shared_' . rand(1, 99999) . '.' . end($temp); 
     $file_path = $file_path . basename($newfilename); 
     $thumbnail = "$user_id/photo_gallery/thumbnails/" . $newfilename; 
     $filename = "$user_id/photo_gallery/thumbnails/" . $newfilename; 
     $mobile_thumbnail = "$user_id/photo_gallery/thumbnails/" . $newfilename; 

     if (move_uploaded_file($_FILES['files']['tmp_name'], $file_path)) { 
     } 

     $albumId = urldecode($app->request->post('albumId')); 
     $caption = urldecode($app->request->post('caption')); 

     $db = new DbHandler(); 
     if (($filetype == "gif") 
      || ($filetype == "png") 
      || ($filetype == "jpeg") 
      || ($filetype == "jpg") 
      || ($filetype == "JPEG") 
      || ($filetype == "PNG") 
      || ($filetype == "GIF") 
      || ($filetype == "JPG") 
     ) { 
      $type = "image"; 
      $result = $db->SharedImage($albumId, $user_id, $caption, $filename, $thumbnail, $mobile_thumbnail, $type); 
     } else { 
      $type = "video"; 
      $result = $db->SharedImage($albumId, $user_id, $caption, $filename, $thumbnail, $mobile_thumbnail, $type); 

     } 
     if ($result != "null") { 
      while ($res = $result->fetch_assoc()) { 
       $response = array(); 

       $response["id"] = $res["id"]; 
       $response["event_id"] = $res["event_id"]; 
       $response["album_id"] = $res["album_id"]; 
       $response["status"] = $res["status"]; 
       $response["filename"] = $res["filename"]; 
       $response["contributedby_id"] = $res["contributedby_id"]; 
       $response["guest_id"] = $res["guest_id"]; 
       $response["thumbnail"] = $res["thumbnail"]; 
       $response["mobile_thumbnail"] = $res["mobile_thumbnail"]; 
       $response["order_id"] = $res["order_id"]; 
       $response["created"] = $res["created"]; 
       $response["updated"] = $res["updated"]; 
       $response["title"] = $res["title"]; 
       $response["type"] = $res["type"]; 
       $response["caption"] = $res["caption"]; 
       $response["taken"] = $res["taken"]; 
       $response["copied_from"] = $res["copied_from"]; 
       $response["media_size"] = $res["media_size"]; 
       $response["thumbnail_size"] = $res["thumbnail_size"]; 
       echoRespnse(200, $response); 
      } 
     } else { 
      $response["message"] = "response contain no data"; 
      echoRespnse(200, $response["message"]); 
     } 
    } else { 
     $response ["error"] = true; 
     $response ["message"] = "Please select a file to upload"; 
     echoRespnse(200, $response); 
    } 
}); 

Скажите, пожалуйста, почему эскиз видео uploded белый и как я могу получить видео крышку.

+0

Возможно, мне что-то не хватает, но где код, который генерирует ваше уменьшенное изображение? –

+0

http://stackoverflow.com/questions/31623754/create-video-thumbnail-in-slim?noredirect1_comment51195936_31623754. Это код, который я использую для создания эскиза –

ответ

0

Использование ffmpeg, была решена. Это код exec('ffmpeg -y -i '.$file_path.' -vcodec mjpeg -ss 00:00:01 -vframes 1 -an -s 620x440 -f rawvideo '.$image.'',$thumb_stdout, $retval); Это создавало уменьшенное изображение в пути $ image размером 620 * 440.

 Смежные вопросы

  • Нет связанных вопросов^_^