ffmpeg无法生成缩略图

ffmpeg无法生成缩略图

我使用 ffmpeg 从一个视频文件中生成 10 个 .jpeg 缩略图。大多数情况下,它工作正常,但对于某些文件(例如 55 秒的 .mp4),我只能获取 10 个捕获中的前 4 个,其余的我收到此错误:
输出文件为空,未编码任何内容(如果使用,请检查 -ss / -t / -frames 参数)

我用来转换的命令是这个,
ffmpeg -ss 16 -i /path/source.mp4 -y -f image2 -t 0.001 -s 320*240 /path/thumb4.jpg
其中 -ss 值是 4 的倍数,并且从 20 开始它停止工作。

命令行完整输出:

`# ffmpeg -ss 77 -i /path/source.mp4 -y -f image2 -t 0.001 -s 320*240 /path/thumb7.jpg  
ffmpeg version git-2013-02-25-b8f6912 Copyright (c) 2000-2013 the FFmpeg developers  
  built on Feb 25 2013 15:18:21 with gcc 4.4.5 (Debian 4.4.5-8)  
  configuration: --enable-shared --enable-libx264 --enable-gpl  
  libavutil      52. 17.103 / 52. 17.103  
  libavcodec     54. 92.100 / 54. 92.100  
  libavformat    54. 63.100 / 54. 63.100  
  libavdevice    54.  3.103 / 54.  3.103  
  libavfilter     3. 41.100 /  3. 41.100  
  libswscale      2.  2.100 /  2.  2.100  
  libswresample   0. 17.102 /  0. 17.102  
  libpostproc    52.  2.100 / 52.  2.100  
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/source.mp4':  
  Metadata:  
    major_brand     : mp42  
    minor_version   : 19529845  
    compatible_brands: mp42isom  
    creation_time   : 2013-03-20 21:45:43  
  Duration: 00:02:04.62, start: 0.000000, bitrate: 605 kb/s  
    Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 64 kb/s  
    Metadata:  
      creation_time   : 2013-03-20 21:45:43  
      handler_name    : Sound Media Handler  
    Stream #0:1(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 40:33 DAR 20:11], 983 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc  
    Metadata:  
      creation_time   : 2013-03-20 21:45:43  
      handler_name    : Video Media Handler  
Output #0, image2, to '/path/thumb7.jpg':  
  Metadata:  
    major_brand     : mp42  
    minor_version   : 19529845  
    compatible_brands: mp42isom  
    encoder         : Lavf54.63.100  
    Stream #0:0(eng): Video: mjpeg, yuvj420p, 320x240 [SAR 15:11 DAR 20:11], q=2-31, 200 kb/s, 90k tbn, 29.97 tbc  
    Metadata:
      creation_time   : 2013-03-20 21:45:43  
      handler_name    : Video Media Handler  
Stream mapping:  
  Stream #0:1 -> #0:0 (h264 -> mjpeg)  
Press [q] to stop, [?] for help  
frame=    0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A      
video:0kB audio:0kB subtitle:0 global headers:0kB muxing overhead -inf%  
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)`  

答案1

当您指定时,-t 0.001您可能最终什么都不会导出。这不是表示您只需要一帧的正确方式。该-t选项采用秒或时间戳格式HH:MM:SS.mmm

以下是应该做的事情:

ffmpeg -ss 16 -i /path/source.mp4 -frames:v 1 -s 320x240 /path/thumb4.jpg

-f image2请注意,不需要该选项,因为无论如何都会选择正确的输出格式。

相关内容