我需要从视频中取出一张图片用作缩略图
所以我正在尝试这个:
ffmpeg -ss 00:05:34.05 -i input.avi -vframes 1 -sameq output.jpg
这工作得很好但是每隔一段时间我就会遇到一个文件失败并显示以下错误消息
av_interleaved_write_frame(): I/O error occurred
通常这意味着输入文件被截断和/或损坏。
如果有的话,我有什么选择?
谢谢
我需要从视频中取出一张图片用作缩略图
所以我正在尝试这个:
ffmpeg -ss 00:05:34.05 -i input.avi -vframes 1 -sameq output.jpg
这工作得很好但是每隔一段时间我就会遇到一个文件失败并显示以下错误消息
av_interleaved_write_frame(): I/O error occurred
通常这意味着输入文件被截断和/或损坏。
如果有的话,我有什么选择?
谢谢
试试这个命令
ffmpeg -ss 5 -i sample.mp4 -vframes 1 -s 320x240 -f image2 -y sample.jpg;
始终在 -i 之前设置 -ss 以优化性能,同时从长视频中获取拇指。
我认为如果您将第一帧中的一个提取为缩略图会更容易。
而不是 -ss 我使用 -vf thumbnail=num_frame
ffmpeg -i input.avi -vf thumbnail=25 -vframes 1 -sameq output.jpg
好的,这似乎对我有用 ffmpeg -itsoffset -4 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
是的,可以使用 ffmpeg。
- 在您的服务器中安装 ffmpeg。
-检查下面的示例代码。
extension_loaded('ffmpeg') or die('Error in loading ffmpeg');
// $vid = realpath('./video/Wildlife.wmv');
$video_url = 'http://download.wavetlan.com/SVV/Media/HTTP/H264/Talkinghead_Media/H264_test1_Talkinghead_mp4_480x360.mp4';
$image_filename = 'images/' . time() . ".jpg";
$movie = new ffmpeg_movie($video_url, false);
$frameCount = $movie->getFrameCount();
$capPos = ceil($frameCount / 4);
$frameObject = $movie->getFrame($capPos);
if ($frameObject) {
$frameObject->resize(500, 250, 0, 0, 0, 0);
imagejpeg($frameObject->toGDImage());
} else {
echo 'error';
}