我最近开始了一个网站,用户可以上传视频到上工作,我用的ffmpeg一个初学者,但我一直在寻找,寻找如何做这些事情,我想要做,但是其中大部分都不适合我。FFMPEG用PHP转换视频的MP4和快照
我想任何视频类型转换为.mp4
和保持质量尽可能的好。现在我的代码只能用于上传.mov
和.mp4
,但.avi
不能转换(它甚至不会为这些文件创建新文件)。
我也想借高画质截图从视频为好,但现在我得到的截图似乎真的低质量的,所以我不知道这是怎么回事这一点。
我现在使用的代码是这样的:
$ffmpeg = "/Users/USERNAME/ffmpeg/ffmpeg";
$src = "/Applications/MAMP/htdocs/lounge/videos/".$filename."_original.".$ext;
$img = "/Applications/MAMP/htdocs/lounge/videos/thumbnails/".$filename."_1.jpg";
$img2 = "/Applications/MAMP/htdocs/lounge/videos/thumbnails/".$filename."_2.jpg";
$img3 = "/Applications/MAMP/htdocs/lounge/videos/thumbnails/".$filename."_3.jpg";
$video = "/Applications/MAMP/htdocs/lounge/videos/".$filename.".mp4";
$src = preg_replace("/ /", "\ ", $src);
$img = preg_replace("/ /", "\ ", $img);
$imgOutput = shell_exec("$ffmpeg -ss 1 -i $src -s 960x540 -f image2 -vframes 1 $img");
$imgOutput2 = shell_exec("$ffmpeg -ss 15 -i $src -s 960x540 -f image2 -vframes 1 $img2");
$imgOutput3 = shell_exec("$ffmpeg -ss 30 -i $src -s 960x540 -f image2 -vframes 1 $img3");
$videoOuput = shell_exec("$ffmpeg -y -i $src 2>&1 -s vga $video");
我怎么能去输出720p或1080p的视频?
如果你想要真正高质量的截图,请删除.jpg并使用.png – Havenard 2013-03-14 22:12:42
1080p视频是'-s 1920x1080'和720p视频是'-s 1280x720' – Havenard 2013-03-14 22:15:24
好的,我确实使用过720p视频,但它是与原始图像相比仍然有点像。 – 2013-03-14 22:25:17