FFMPEG 无法取帧并另存为图像

Posted

技术标签:

【中文标题】FFMPEG 无法取帧并另存为图像【英文标题】:FFMPEG unable to take frame and save as image 【发布时间】:2013-02-06 20:29:29 【问题描述】:

我正在尝试保存视频帧中的图像并将其保存为 jpeg。 此功能适用于较小的视频文件,但如果视频超过 10 分钟,则不会保存 jpeg 图像。和之前一样出现错误。

public function VideoToJpeg($localVideoPath, $localOutImgPath)

    $Name = dirname(__FILE__) . "/ffmpeg";
    $Str = "$Name -i \"$localVideoPath\" -an -ss 00:00:03 -an -r 1 -vframes 1 -y \"$localOutImgPath\"";

    exec($Str);

这是我从 ffmpeg 得到的错误

[NULL @ 0370e760] Unable to find a suitable output format for 'path'
: Invalid argument

【问题讨论】:

出现什么错误? An error comes up?那个错误会是......? 脚本的另一部分是将任何视频从例如 mp4 编码到 flv 容器并将其发送到 red5 的流文件。这样我可以看到图像并且视频可以正常播放。当视频超过十分钟图像未转换,并且在流目录中,flv.beforetrans 出现在视频流下 您仍然缺少 FFmpeg 的完整未剪切输出 尝试记录$localOutImgPath 的值。看看结果是什么。我怀疑它会是字符串"path" 【参考方案1】:

您的问题尚不清楚,但我认为$localOutImgPath$localVideoPath 参数传递了一些错误的值,因为错误清楚地表明了这一点:

[NULL @ 0370e760] Unable to find a suitable output format for 'path'

请检查一下。

请参阅FFmpeg: The ultimate Video and Audio Manipulation Tool 和 FFmpeg and x264 Encoding Guide 了解更多示例。

【讨论】:

【参考方案2】:

不确定这是否会有所帮助,但我已经成功使用了以下 php 包(尽管我从未遇到过你提到的问题):

http://ffmpeg-php.sourceforge.net/

另一种选择可能是更改 php 内存分配设置:

http://drupal.org/node/207036

您可能没有使用 Drupal,但该页面上的大多数建议都与 PHP 本身相关(而不是 Drupal)。

【讨论】:

以上是关于FFMPEG 无法取帧并另存为图像的主要内容,如果未能解决你的问题,请参考以下文章

VBA:将excel区域导出为图像并另存为文件。

如何在 BufferedImage 中使颜色透明并另存为 PNG

Photoshop - 增加文本中的数字并另存为该文本

提示用户打开工作簿并另存为新工作簿

转置表格并另存为视图

打开 Excel 文件并另存为 .XLS