使用php表单上传时使用ffmpeg压缩视频?

时间:2018-03-07 05:43:42

标签: php laravel ffmpeg video-compression

我正在使用laravel famework,我正在使用ffmpeg PHP库。如果没有找到任何使用ffmpeg进行视频压缩的好链接。有两种压缩情况。

1) Video Already exists in folder - this i have done already 
2) Video Upload through Form - this i am not able to do :(

让我分享第一个案例代码: -

Suppose my video is 13Mb and below code compressed to 4.5Mb (running fine)
$inputVideo = public_path('input/airplane_flight_airport_panorama_1080.mp4');
$outputVideo = public_path('uploads/output.mp4');
exec("ffmpeg -i $inputVideo -b 1000000 $outputVideo"); // this compressing or resize the video

现在第二个案例是使用表单上传: -

<form method="post" action="{{url('/api/upload-test-video')}}" enctype="multipart/form-data">
 <input name="video" type="file"><br>
 <input type="submit" value="Submit">
</form>

现在我开始工作: -

public function uploadTestVideo(Request $request){
    echo "<pre>"; print_r($_FILES); 
    // now in this function i wnat to compress the video 
}

注意: - 我不想在某个文件夹中上传视频,然后获取视频并压缩视频。请帮助我如何解决这个问题。在此先感谢:)

1 个答案:

答案 0 :(得分:1)

你想做什么?压缩用户端的视频?或者在上传时?你需要文件系统上的视频来&#34;压缩&#34;它使用ffmpeg。由于ffmpeg需要在运行它的机器上对videofile进行物理访问,因此无法解决这个问题。

所以最好的选择是上传视频,将其放入临时文件夹并压缩它。就我个人而言,我需要花费一段时间来完成ffmpeg步骤,但这需要一个不同的故事。