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

标签 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 
}

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

最佳答案

你想让我做什么?在用户端压缩视频?还是在上传的时候?您需要文件系统上的视频使用 ffmpeg “压缩”它。没有办法解决这个问题,因为 ffmpeg 需要对其运行的机器上的视频文件进行物理访问。

所以最好的办法是上传视频,将其放入临时文件夹并压缩。就我个人而言,我会异步执行 ffmpeg 步骤,因为这需要一段时间,但 tgat 是另一回事。

关于php - 使用php表单上传时使用ffmpeg压缩视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49144923/

相关文章:

php - 逐渐更新每一行的日期列加一天

php - fatal error : Class 'LaravelLocalization' not found after composer install in production

php - 如何使用php中的mysql表字段值计算剩余天数

php - laravel 中的 Auth 类如何知道要与哪个表比较数据?以及要检查哪些字段?

database - Laravel 5.2 - 从 Controller 创建数据库表

php - DB2 iSeries PDO VARCHAR

php - 检查数据库,如果数据不存在则插入

ffmpeg - 加入多个文件并添加背景音乐、水印时初始化过滤器 'amovie' 时出错

amazon-ec2 - 如何在 ec2 中使用 S3FS、FFMPEG 获取视频文件的宽度/高度

Android FFMPEG Appunite 库问题