我已经用netstream制作了一个用于在flash中流式传输flv电影的播放器,但它需要一些名为" keyframe"的元数据信息,其中包含两个时间和位置数组,有些FLV视频有这个元数据,有些没有,我可以使用名为" flvmdi"的程序添加关键帧元数据,播放器工作正常,但由于某些原因,我无法在我的服务器上安装此软件。我知道我们可以在 PHP 中使用 ffmpeg 功能将元数据添加到电影中。我可以在 PHP 中使用 ffmpeg 函数将关键帧数组作为元数据添加到 flv 文件中吗?我们如何在 php 中使用 ffmpeg 制作时间和位置数组以注入到 flv 文件中?
使用 ffmpeg 可以插入保留的关键帧视频(-vcodec copy)/音频(-acodec copy)编解码器,以可变间隔插入关键帧。
例如;每 1 秒:-g 1
ffmpeg -i /INPUT.FLV -acodec copy -vcodec copy -copyts -g 1 /OUTPUT.FLV
将命令分解为变量并修改输入输出文件/路径,调整-g的值;
$interval = 1; // 1sec
$pI = '/usr/local/www/sitex/upload'; // Input
$pO = '/usr/local/www/sitex/encode'; // Output
$fI = 'inp.flv';
$fO = 'out.flv';
ffmpeg -i $pI+$fI -acodec copy -vcodec copy -copyts -g $interval $pO+$fO