php - ffmpeg 从 mp4 文件导出的 UnClear 图像

标签 php image video ffmpeg

我正在尝试从 mp4 视频中拍摄快照。
这是我通过 PHP 使用的代码:

exec("ffmpeg -ss 00:00:03 -i 1419856237575730484.mp4 -y -an -f mjpeg -vframes 1 1419856237575730484.jpg 2>&1")

结果包含以下错误:

解码流 #0:0 时出错:处理输入时发现无效数据(最后一条消息重复 37 次)

调用该函数将生成图像 image produced from the first call

第二个调用得到的另一个图像与前一个不同,但仍然像这样模糊和损坏:image produced from the second call

任何帮助将不胜感激。
ffmpeg version N-68271-geb74839-syslint Copyright (c) 2000-2014 the FFmpeg developers
built on Dec 7 2014 04:36:06 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-11)
configuration: --prefix=/usr/local/cpffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --enable-libopencore-amrnb --enable-decoder=liba52 --enable-libopencore-amrwb --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/local/cpffmpeg/include/ --extra-ldflags=-L/usr/local/cpffmpeg/lib --enable-version3 --extra-version=syslint
libavutil 54. 15.100 / 54. 15.100
libavcodec 56. 14.100 / 56. 14.100
libavformat 56. 15.102 / 56. 15.102
libavdevice 56. 3.100 / 56. 3.100
libavfilter 5. 2.103 / 5. 2.103
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x71fdc0] overread end of atom 'colr' by 1 bytes
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'view/media/video/1419856237575730484.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2011-08-30 14:11:40
encoder : HandBrake 0.9.5 2011010300
title : malaf
artist : 4
comment : 3
Duration: 00:00:33.07, start: 0.000000, bitrate: 983 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 640x360, 866 kb/s, 25 fps, 25 tbr, 90k tbn, 180k tbc (default)
Metadata:
creation_time : 2011-08-30 14:11:40
encoder : JVT/AVC Coding
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2011-08-30 14:11:40
[swscaler @ 0x7070c0] deprecated pixel format used, make sure you did set range correctly
Output #0, mjpeg, to 'view/media/video/1419856237575730484.jpg':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
comment : 3
artist : 4
title : malaf
encoder : Lavf56.15.102
Stream #0:0(und): Video: mjpeg, yuvj420p(pc), 640x360, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
Metadata:
creation_time : 2011-08-30 14:11:40
encoder : Lavc56.14.100 mjpeg
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
Press [q] to stop, [?] for help
Error while decoding stream #0:0: Invalid data found when processing input
Last message repeated 37 times
frame= 1 fps=0.0 q=3.8 Lsize= 10kB time=00:00:00.04 bitrate=2131.6kbits/s
video:10kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000% 

最佳答案

我发现这个问题是由操作系统权限引起的。
重新安装 FFMPEG 和所有必需的库并给予操作用户足够的权限解决了我的问题。

关于php - ffmpeg 从 mp4 文件导出的 UnClear 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27721677/

相关文章:

opencv - 在OpenCV中处理视频,无需播放

javascript - Bootstrap 3 - 手动将事件类分配给标题导航项

java - Android加载字节数组图像列表

php - 根据 3 个参数(加入日期、出生日期、学校学年)检查学生是否在托儿所、学前类、幼儿园

javascript - 嵌入来自第三方的图像相册(imgur、picasa)

html - 调整手机网站的图片大小

html - 在 html5 中寻求 mp4 视频的功能不起作用

flash - 带有方向标志的基于 Web 的 iOS 视频播放

php - 如何在 Windows 上从源代码为 PDO 构建 SQL Relay?

PHP OOP 接口(interface)类型继承