
ffmpeg 사이트에서 이 문서를 따르고 있습니다.
img001.jpg, img002.jpg, img003.jpg, ...라는 이름의 썸네일 이미지가 1분마다 생성됩니다. (%03d는 각 썸네일 이미지의 서수가 3자리 형식이어야 함을 의미합니다.)
ffmpeg -i myvideo.avi -f image2 -vf fps=fps=1/60 img%03d.jpg
그러면 10분마다 Thumb0001.bmp, Thumb0002.bmp, Thumb0003.bmp, ...라는 이름의 축소판 이미지가 하나씩 생성됩니다.
ffmpeg -i test.flv -f image2 -vf fps=fps=1/600 thumb%04d.bmp
하지만 1/600 옵션을 사용하면 작동하지 않고 다음 오류가 발생합니다.
ffmpeg -i src/e0b4c83e7ab2ada44c2785d25b0d4a9d45fc0c66.3gp -f image2 -vf fps=fps=1/250 thumbs/images%d.jpg
ffmpeg version 1.0.3 Copyright (c) 2000-2012 the FFmpeg developers
built on Oct 13 2013 21:48:31 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)
configuration:
libavutil 51. 73.101 / 51. 73.101
libavcodec 54. 59.100 / 54. 59.100
libavformat 54. 29.104 / 54. 29.104
libavdevice 54. 2.101 / 54. 2.101
libavfilter 3. 17.100 / 3. 17.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'src/e0b4c83e7ab2ada44c2785d25b0d4a9d45fc0c66.3gp':
Metadata:
major_brand : 3gp4
minor_version : 512
compatible_brands: isomiso23gp4
creation_time : 2013-11-27 14:02:52
Duration: 00:05:01.33, start: 0.000000, bitrate: 177 kb/s
Stream #0:0(und): Video: h263 (s263 / 0x33363273), yuv420p, 176x144 [SAR 12:11 DAR 4:3], 161 kb/s, 15 fps, 15 tbr, 15 tbn, 29.97 tbc
Metadata:
creation_time : 2013-11-27 14:06:48
handler_name : VideoHandler
Stream #0:1(und): Audio: amr_nb (samr / 0x726D6173), 8000 Hz, mono, flt, 12 kb/s
Metadata:
creation_time : 2013-11-27 14:06:48
handler_name : SoundHandler
[mjpeg @ 0x3621940] bitrate tolerance too small for bitrate
[mjpeg @ 0x363c1c0] ff_frame_thread_encoder_init failed
Output #0, image2, to 'thumbs/images%d.jpg':
Metadata:
major_brand : 3gp4
minor_version : 512
compatible_brands: isomiso23gp4
Stream #0:0(und): Video: mjpeg, yuvj420p, 176x144 [SAR 12:11 DAR 4:3], q=2-31, 200 kb/s, 90k tbn, 0k tbc
Metadata:
creation_time : 2013-11-27 14:06:48
handler_name : VideoHandler
Stream mapping:
Stream #0:0 -> #0:0 (h263 -> mjpeg)
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
왜 1/60은 작동하고 1/600은 작동하지 않습니까? 어떻게 고치나요? 또한 서버 업데이트는 옵션이 아닙니다.
답변1
를 사용하는 동안 jpg 출력에 대한 기본 설정이 왜 있는지 아직 모르겠습니다.fps
비디오 필터특정 값을 사용하면 오류가 발생합니다.
[mjpeg @ 0x3621940] bitrate tolerance too small for bitrate
[mjpeg @ 0x363c1c0] ff_frame_thread_encoder_init failed
예
-qscale:v
해결 방법은 (또는 별칭 -q:v
) 옵션을 사용하는 것입니다 .
ffmpeg -i input.mkv -vf fps=1/250 -qscale:v 2 output%d.jpg
노트
JPEG로 출력할 때 유효 범위는
-qscale:v
2~31의 선형 스케일입니다. 값이 낮을수록 품질이 높아집니다.-f image2
필요하지 않습니다.fps=
내 예에 표시된 것처럼 추가 항목을 생략할 수도 있습니다 .또 다른 해결 방법은 png와 같은 다른 출력 형식을 사용하는 것이지만 이는 사용자에게 적합한 솔루션이 아닐 수 있습니다.
또 다른 가능한 해결 방법은 다음을 사용하는 것입니다.
select
비디오 필터대신 사용자 친화적이지 않습니다.를 사용하면 오류가
-threads 1
제거되지만ff_frame_thread_encoder_init failed
다른 오류는 제거되지 않습니다.-r
필터 대신 사용할 때에도 동일한 오류가 나타납니다fps
.
자세한 내용을 알아보면 이 답변을 업데이트하겠습니다(적절한 조사를 수행할 시간이 부족했습니다...).