Vimeo показывает ошибку обработки при загрузке видео с сервера на сайт Vimeo с помощью php

Я загружаю видео из моего приложения ios на сервер с помощью php webservice.После успешной загрузки я пытаюсь загрузить его на vimeo.Vimeo сайт дать нам ссылку на видео url, но этот url не работает. Если я собираюсь на сайт vimeo и проверить видео, то его показ как ошибка обработки. вот снимок экрана

Введите описание изображения здесь

Я использую PHP Vimeo api lib https://github.com/vimeo/vimeo.php

Вот моя функция php webservice, которую я использую в своем приложении ios

include_once './autoload.php';
use VimeoVimeo;

function saveVideoDetails($postData, $con)
{
    $client_id = "ClientId";
    $client_secret = "ClientSecret";
    $toke_secret = "TokenSecret";

    $lib = new Vimeo($client_id, $client_secret, $toke_secret);
    $userId = $postData->user_id;
    $videoTitle = addslashes(validateValue($postData->video_title, "Untitled"));
    $videoDescription = addslashes(validateValue($postData->video_description, "No description"));
    $videoEncodedData = $postData->video_encodedData;
    $videoThumbImageData = $postData->video_thumbImageData;
    $videoDuration = $postData->video_Duration;

    $errorMsg = "";

    $uploadDir = IMAGE_UPLOADFOLDER;
    $uploadvdoDir =VIDEO_UPLOADFOLDER;

    $vdoThubName = date('dMYHsa_') . "uid_" . $userId . "_thumb.png";
    $vdoName = date('dMYHsa_') . "uid_" . $userId . "_video.mp4";

    $videoThumbLink = $uploadDir . $vdoThubName;
    $videoLink = $uploadvdoDir . $vdoName;

    if (strlen($videoEncodedData) > 0)
    {
        $binary = base64_decode($videoEncodedData);
        $file = fopen($videoLink,'wb') or die("open failed----> ".$videoLink);
        $P=fwrite($file, $binary);
        if($P)
        {
            fclose($file);
                $urlink =$videoLink;
                $video_response = $lib->request('/me/videos', array('type' => 'pull', 'link' => $urlink), 'POST');
                $vimeo_video_link = $video_response['body']['link'];
                if(!$vimeo_video_link)
                {
                    $status = 3;
                    $errorMsg = "Video upload fail in vimeo";
                }
                else
                {
                   $status = 1;
                    $errorMsg = "Video uploaded";
                }   
        }
        else
        {
            $status = 3;
            $errorMsg = "unable to upload";
        }
    }
    else
    {
        $status = 2;
        $errorMsg = "video data not available";
    }
    $data['status'] = $status;
    $data['message'] = $errorMsg;
    $data['data'] = null;
    return $data;  
}

1 ответ

  1. Как таковой в вашем коде нет проблемы.

    Необходимо проверить исключения vimeo.
    Перед этим убедитесь, что URL видео, который вы передаете в качестве параметра в запросе vimeo, является правильным или нет. Если это nil или неправильно, то vimeo дает ошибку как недопустимый файл.

    $urlink =$videoLink; 
    $video_response = $lib->request('/me/videos', array('type' => 'pull', 'link' => $urlink), 'POST'); 
    $vimeo_video_link = $video_response['body']['link']; 
    

    В приведенном выше коде проверьте правильность переменной $urlink.

    Также в соответствии с условиями vimeo, если вы используете бесплатный аккаунт, мы можем загрузить 10 видео в день. Так что если вы превысите это ограничение, то также вы не можете загрузить видео.

    Читать условия vimeo https://vimeo.com/help/faq/vimeo-membership/vimeo-plus

    В библиотеке API vimeo ( https://github.com/vimeo/vimeo.php ) который вы уже использовали есть один файл для исключения, так что вы можете использовать этот файл, чтобы проверить исключение.