我想创建一个能在html5视频中播放用户上传视频的网站。
如何在服务器端将任何视频类型转换为WebM、OGG或MP4格式?
FFmpeg是最好的解决方案吗?目前我认为是这样,但我更愿意找到一种更简单的方法。
是的,ffmpeg是最好的解决方案,但您需要按照以下步骤使视频在所有浏览器中正常工作:
1- 从ffmpeg下载最新版本;
2- 将内容提取到一个目录中;
3- 使用PHP调用exe文件生成mp4和webm视频格式,例如:
exec(ffmpegdirectory/bin/ffmpeg.exe -i your_video_path -qscale 4 -vcodec libx264 -f mp4 your_new_video_path.mp4);
exec(ffmpegdirectory/bin/ffmpeg.exe -i your_video_path -b 1500k -vcodec libvpx -acodec libvorbis -ab 160000 -f webm -g 30 -s your_new_video_path.webm);
4- 如果你使用的是IIS,需要允许Mime类型为mp4和webm。
5- 使用video.js构建HTML5视频标签,并调用转换后的两个视频(mp4和webm);
注意:如果不使用video.js,则视频可能无法在IE中正常工作。
不错,但你的编码有点问题,RED_ALERT用户。
<?php
shell_exec("ffmpegdirectory/bin/ffmpeg.exe -i your_video_path -qscale 4 -vcodec libx264 -f mp4 your_new_video_path.mp4");
shell_exec("ffmpegdirectory/bin/ffmpeg.exe -i your_video_path -b 1500k -vcodec libvpx -acodec libvorbis -ab 160000 -f webm -g 30 -s your_new_video_path.webm");
?>
基本上,您将ffmpeg添加到计算机上的单独目录文件夹中,而不是在使用wamp时添加。然后,您可以创建一个HTML文档,其中srcs视频,不需要video js。当然,您需要知道视频的路径,并找出一种将msyql查询中的路径放入上面的php shell_exec命令的方法。
这里有另一个示例,它将wmv视频转换为mp4视频。
<?php shell_exec("ffmpeg/bin/ffmpeg -i /myvideos/lionseatsham.wmv -s 500x400 -strict -2 /myvideo/lioneatshame.mp4 2>&1");
?>