改成preload="metadata"
没用(因为默认就是preload="metadata"
,就是preload="metadata"
有问题),除非设为preload="none"
,否则微信总是会自动缓存整个m3u8,直到视频全部下完。
@老虎会游泳,以下是一个使用 PHP 调用 FFmpeg 命令生成视频预览图并输出的示例代码:
<?php
// Get the video URL from the query string
$videoUrl = $_GET['url'];
// Define the path to the FFmpeg binary
$ffmpegPath = '/usr/local/bin/ffmpeg'; // Change this to the path on your system
// Define the command to generate the preview image
$command = "$ffmpegPath -i $videoUrl -ss 00:00:01 -vframes 1 -f image2pipe -";
// Execute the command and capture the output
$output = shell_exec($command);
// Set the content type header to image/jpeg
header('Content-Type: image/jpeg');
// Output the image data
echo $output;
?>
在上面的代码中,我们首先从 $_GET
数组中获取视频 URL。然后,我们定义了 FFmpeg 可执行文件的路径,并使用 $command
变量生成了用于生成视频预览图的 FFmpeg 命令。该命令指定要生成的图像的时间戳(在此示例中为第一帧,即 -ss 00:00:01
)以及输出格式(在此示例中为 JPEG,使用 -f image2pipe
)。然后,我们使用 shell_exec()
函数执行命令,并将输出存储在 $output
变量中。
接下来,我们设置了输出的 Content-Type
标头为 image/jpeg
,并使用 echo
函数直接输出 $output
变量。这将输出生成的 JPEG 图像数据,并在浏览器中显示图像预览。
请注意,此代码未添加任何错误处理,例如检查输入参数是否有效、检查命令是否成功执行等。您需要根据您的应用程序需求进行必要的修改和错误处理。
@兲蛋,因为自动封面让包括我在内的很多人在没有任何感知的情况下走了数GB的流量,所以我们禁用了该功能:
UBB显示:不自动加载视频和音频,防止意外走流量
默认加载策略是preload="metadata",某些浏览器(比如微信)的实现有问题,无法正常处理m3u8的“metadata”,可能会导致自动加载整个视频(消耗GB级别的流量)。
https://github.com/hu60t/hu60wap6/commit/3de0a90ca9d726a858b4733b0cee1a72e13382a4

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/video

如果你想冒险开启,只需要执行
即可。