저는 YouTube와 마찬가지로 웹 사이트 www.goploom.com을 소유하고있어 사용자가 비디오를 업로드하고 볼 수 있습니다. 업로드 된 동영상은 YouTube 사이트의 html5 동영상 플레이어와 호환되도록 mp4 형식으로 변환됩니다. 내 문제는 FFmpeg 성공적으로 업로드 된 비디오에서 비디오 축소판을 생성하고 적절한 디렉터리에 이미지를 저장하는 동안 내 코드의 비디오 변환 측면에서 출력을 생성하지 않습니다. 몇 시간 동안 코드를 수정했는데이 문제를 해결할 수 없었지만 html, php 및 ffmpeg로 비디오 변환을 수행 할 수 있다고 들었습니다.FFmpeg가 작동하지 않습니다.
썸네일 생성이 완벽하게 작동하기 때문에 ffmpeg 로의 내 경로가 정확합니다.
** 업로드시 업로드 된 비디오의 정보. $ name = $ _FILES [ 'video'] [ 'name']; $ title = $ _POST [ 'videotitle']; $ type = explode ('.', $ name);
$ type = end ($ type); $ size = $ _FILES [ 'video'] [ 'size']; $ random_name = rand(); $ tmp = $ _FILES [ 'video'] [ 'tmp_name'];
if($type != 'mp4' && $type != 'MP4' && $type != 'flv' && $type != 'FLV' && $type != 'mov' && $type != 'MOV'){
$message = "Video Format Not Supported<br>";
} else {
$username_query = mysql_query("SELECT `username` FROM `users` WHERE `user_id` = $session_user_id");
$username = mysql_fetch_assoc($username_query);
$username = $username['username'];
** 완벽하게 작동하는 엄지 손톱 생성. $ ffmpeg = "/ usr/local/bin/ffmpeg"; $ videoFile = $ _FILES [ 'video'] [ 'tmp_name']; $ imageFile = "업로드 /".$ 사용자 이름. "/ 축소판 /". $ 임의의 이름. ". jpg"; $ size = "160x90"; $ getFromSecond = 5; $ cmd = "$ ffmpeg -i $ videoFile -an -ss $ getFromSecond -s $ size $ imageFile"; if (! shell_exec ($ cmd)) { echo "미리보기 이미지 생성 됨
";
else { echo "미리보기 이미지를 만드는 중 오류가 발생했습니다!"; }
** 업로드 한 파일을 동영상 변환을위한 영구 디렉토리로 이동합니다. $ newFileLocation = "업로드 /".$ 사용자 이름. "/ temp". $ random_name. ".". $ type; move_uploaded_file ($ tmp, $ newFileLocation);
* 비디오 변환 코드. $ outputFile = "업로드 /".$ 사용자 이름. "/". $ random_name. ".mp4"; $ databaseStoredVideoUrl = "업로드 /". 사용자 이름. "/". $ random_name. ".mp4"; $ video_cmd = "$ ffmpeg -i $ newFileLocation $ outputFile"; echo $ video_cmd; if (! shell_exec ($ video_cmd)) { echo "Video Converted!
"; } else { echo "미리보기 이미지를 만드는 중 오류가 발생했습니다!";
** 제대로 출력 된 src 링크를 데이터베이스에 저장하지만 비디오가 존재하지 않기 때문에 볼 수 없습니다. // 올바른 사용자 이름과 사용자 디렉토리에있는 데이터베이스에 비디오 저장 mysql_query ("INSERT INTO videos
VALUES ('$ session_user_id', '' '$ name', '$ outputFile', '$ title', '', $) imageFile ') "); $ message = "업로드 성공
";
어떤 도움이나 통찰력이 우수 할 것입니다. 감사합니다. .
** 편집 : 다음 줄을 사용하여 수정. $ video_cmd = "$의는 FFmpeg -i $ newFileLocation -vcodec libx264 -vpre 정상 -acodec libfaac의 $의 출력 _를";
다음 shell_exec