通过PHP上传视频并在服务器上编码为MP4和/或WebM


Upload a video via PHP and encode to MP4 and/or WebM on the server?

我想上传一个文件(事实上,我已经使用PHP和JQuery完成了),但我想在上传过程中将其编码为MP4和/或WebM,例如Youtube在那里上传视频时所做的。在此过程中,是否有一个选项可以在服务器中执行此操作?

我必须先编码然后上传吗?

您可以在文件上传结束时执行此操作,这是在您将文件移动到特定位置(代码下面)之后

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);

您可以使用一个名为FFMPEG的免费知名库,它支持多种格式。请看下面两个链接的例子和更好的解释:

https://www.phpro.org/tutorials/Video-Conversion-With-FFMPEG.html

https://trac.ffmpeg.org/wiki/Using%20FFmpeg%20from%20PHP%20scripts

基本上,你可以像这样从PHP调用FFMPEG函数

<?php
 /*** convert video to flash ***/
 exec("ffmpeg -i video.avi -ar 22050 -ab 32 -f flv -s 320x240 video.flv");
?>