php实现视频播放
PHP实现视频播放的方法
PHP本身不直接处理视频播放,但可以通过生成HTML5视频标签或集成第三方播放器实现。以下是几种常见方法:
使用HTML5 video标签
通过PHP输出HTML5视频标签,浏览器会自动处理播放:
<?php
$videoPath = 'path/to/video.mp4';
?>
<video width="640" height="360" controls>
<source src="<?php echo htmlspecialchars($videoPath); ?>" type="video/mp4">
您的浏览器不支持HTML5视频
</video>
集成第三方播放器
流行的视频播放器如Video.js、JW Player等可以轻松集成:
<?php
// Video.js集成示例
$videoPath = 'path/to/video.mp4';
?>
<link href="https://vjs.zencdn.net/7.15.4/video-js.css" rel="stylesheet">
<video id="my-video" class="video-js" controls preload="auto" width="640" height="360">
<source src="<?php echo htmlspecialchars($videoPath); ?>" type="video/mp4">
</video>
<script src="https://vjs.zencdn.net/7.15.4/video.js"></script>
视频流处理
对于大文件或需要保护的视频,可以使用PHP进行流式传输:
<?php
function streamVideo($filePath) {
if(file_exists($filePath)) {
header('Content-Type: video/mp4');
header('Content-Length: ' . filesize($filePath));
readfile($filePath);
exit;
}
}
streamVideo('path/to/protected/video.mp4');
视频权限控制
结合PHP实现访问控制:
<?php
session_start();
if(isset($_SESSION['user_auth'])) {
$videoPath = 'path/to/private/video.mp4';
?>
<video controls>
<source src="<?php echo htmlspecialchars($videoPath); ?>" type="video/mp4">
</video>
<?php
} else {
echo '请登录后观看视频';
}
视频转码处理
使用FFmpeg扩展处理视频格式:
<?php
$ffmpegPath = '/usr/bin/ffmpeg';
$inputFile = 'input.avi';
$outputFile = 'output.mp4';
$command = "$ffmpegPath -i $inputFile -c:v libx264 -c:a aac $outputFile 2>&1";
exec($command, $output, $returnCode);
if($returnCode === 0) {
echo '视频转码成功';
} else {
echo '转码失败: ' . implode("\n", $output);
}
视频缩略图生成
使用PHP生成视频缩略图:

<?php
$ffmpegPath = '/usr/bin/ffmpeg';
$videoFile = 'video.mp4';
$thumbnailFile = 'thumbnail.jpg';
$command = "$ffmpegPath -i $videoFile -ss 00:00:05 -vframes 1 -q:v 2 $thumbnailFile";
exec($command);
echo '<img src="'.$thumbnailFile.'" alt="视频缩略图">';
这些方法可以根据具体需求组合使用,实现完整的视频播放解决方案。






