[FFmpeg-user] How to speed up thumbnail generation for video files using FFMPEG on MIPS
Pavan Kulkarni
pavanvkbgm at gmail.com
Mon Jul 9 08:22:47 CEST 2012
Hi,
I have pasted the output of the commands:
*time ./ffmpeg -i Pirates_remux_short.ts out1.jpg (This creates a thumbnail
which is not very clear though)*
malloc: using debugging hooks
ffmpeg version 0.8.5, Copyright (c) 2000-2011 the FFmpeg developers
built on Jan 3 2012 14:43:18 with gcc 4.3.2
configuration: --enable-cross-compile --target-os=linux
--cross-prefix=mipsisa32r2el-timesys-linux-gnu- --arch=mips
--extra-cflags=-O2
libavutil 51. 9. 1 / 51. 9. 1
libavcodec 53. 7. 0 / 53. 7. 0
libavformat 53. 4. 0 / 53. 4. 0
libavdevice 53. 1. 1 / 53. 1. 1
libavfilter 2. 23. 0 / 2. 23. 0
libswscale 2. 0. 0 / 2. 0. 0
[h264 @ 0x100f690] non-existing SPS 13 referenced in buffering period
Last message repeated 1 times
Input #0, mpegts, from 'Pirates_remux_short.ts':
Duration: 00:00:59.22, start: 720.665000, bitrate: 33719 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1
DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0.1[0x1100](eng): Audio: pcm_bluray, 48000 Hz, 5.1, s32, 6912
kb/s
Incompatible pixel format 'yuv420p' for codec 'mjpeg', auto-selecting
format 'yuvj420p'
[buffer @ 0x10047c0] w:1920 h:1080 pixfmt:yuv420p tb:1/1000000 sar:1/1
sws_param:
[buffersink @ 0x1004210] auto-inserting filter 'auto-inserted scaler 0'
between the filter 'src' and the filter 'out'
[scale @ 0x10125e0] w:1920 h:1080 fmt:yuv420p -> w:1920 h:1080 fmt:yuvj420p
flags:0x4
[h264 @ 0x100f690] non-existing SPS 13 referenced in buffering period
Output #0, image2, to 'out1.jpg':
Metadata:
encoder : Lavf53.4.0
Stream #0.0: Video: mjpeg, yuvj420p, 1920x1080 [PAR 1:1 DAR 16:9],
q=2-31, 200 kb/s, 90k tbn, 23.98 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
[h264 @ 0x100f690] non-existing SPS 13 referenced in buffering period
[image2 @ 0x1010fa0] Could not get frame filename number 2 from pattern
'out1.jpg'
av_interleaved_write_frame(): Invalid argument
Command exited with non-zero status 1
*real 0m 10.90s*
user 0m 9.61s
sys 0m 0.50s
*time ./ffmpeg -ss 18 -i Pirates_remux_short.ts -vframes 1 -f null - *
malloc: using debugging hooks
ffmpeg version 0.8.5, Copyright (c) 2000-2011 the FFmpeg developers
built on Jan 3 2012 14:43:18 with gcc 4.3.2
configuration: --enable-cross-compile --target-os=linux
--cross-prefix=mipsisa32r2el-timesys-linux-gnu- --arch=mips
--extra-cflags=-O2
libavutil 51. 9. 1 / 51. 9. 1
libavcodec 53. 7. 0 / 53. 7. 0
libavformat 53. 4. 0 / 53. 4. 0
libavdevice 53. 1. 1 / 53. 1. 1
libavfilter 2. 23. 0 / 2. 23. 0
libswscale 2. 0. 0 / 2. 0. 0
[h264 @ 0x100f690] non-existing SPS 13 referenced in buffering period
Last message repeated 1 times
Input #0, mpegts, from 'Pirates_remux_short.ts':
Duration: 00:00:59.22, start: 720.665000, bitrate: 33719 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1
DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0.1[0x1100](eng): Audio: pcm_bluray, 48000 Hz, 5.1, s32, 6912
kb/s
Incompatible sample format 's32' for codec 'pcm_s16le', auto-selecting
format 's16'
[buffer @ 0x10047c0] w:1920 h:1080 pixfmt:yuv420p tb:1/1000000 sar:1/1
sws_param:
[h264 @ 0x100f690] non-existing SPS 13 referenced in buffering period
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf53.4.0
Stream #0.0: Video: rawvideo, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9],
q=2-31, 200 kb/s, 90k tbn, 23.98 tbc
Stream #0.1(eng): Audio: pcm_s16le, 48000 Hz, 5.1, s16, 4608 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop, [?] for help
[h264 @ 0x100f690] non-existing SPS 13 referenced in buffering period
frame= 1 fps= 0 q=0.0 Lsize= -0kB time=00:00:00.04 bitrate=
-4.2kbits/s dup=20 drop=0
video:0kB audio:84kB global headers:0kB muxing overhead -100.025463%
*real 0m 9.66s*
user 0m 8.48s
sys 0m 0.51s
*time ./ffmpeg -ss 18 -i Pirates_remux_short.ts -vframes 1 -vcodec copy -f
rawvideo /dev/null*
malloc: using debugging hooks
ffmpeg version 0.8.5, Copyright (c) 2000-2011 the FFmpeg developers
built on Jan 3 2012 14:43:18 with gcc 4.3.2
configuration: --enable-cross-compile --target-os=linux
--cross-prefix=mipsisa32r2el-timesys-linux-gnu- --arch=mips
--extra-cflags=-O2
libavutil 51. 9. 1 / 51. 9. 1
libavcodec 53. 7. 0 / 53. 7. 0
libavformat 53. 4. 0 / 53. 4. 0
libavdevice 53. 1. 1 / 53. 1. 1
libavfilter 2. 23. 0 / 2. 23. 0
libswscale 2. 0. 0 / 2. 0. 0
[h264 @ 0x100f690] non-existing SPS 13 referenced in buffering period
Last message repeated 1 times
Input #0, mpegts, from 'Pirates_remux_short.ts':
Duration: 00:00:59.22, start: 720.665000, bitrate: 33719 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1
DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0.1[0x1100](eng): Audio: pcm_bluray, 48000 Hz, 5.1, s32, 6912
kb/s
File '/dev/null' already exists. Overwrite ? [y/N] y
Output #0, rawvideo, to '/dev/null':
Metadata:
encoder : Lavf53.4.0
Stream #0.0: Video: [27][0][0][0] / 0x001B, yuv420p, 1920x1080 [PAR 1:1
DAR 16:9], q=2-31, 90k tbn, 23.98 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
[NULL @ 0x100f690] non-existing SPS 13 referenced in buffering period
frame= 1 fps= 0 q=-1.0 Lsize= 0kB time=00:00:01.01 bitrate=
0.0kbits/s
video:429kB audio:0kB global headers:0kB muxing overhead -100.000000%
*real 0m 11.10s*
user 0m 6.64s
sys 0m 0.30s
*time ./ffmpeg -ss 18 -i Pirates_remux_short.ts -vf
select='eq(pict_type\,PICT_TYPE_I)' -vframes 1 -an -s 150x100 thumb.jpg*
malloc: using debugging hooks
ffmpeg version 0.8.5, Copyright (c) 2000-2011 the FFmpeg developers
built on Jan 3 2012 14:43:18 with gcc 4.3.2
configuration: --enable-cross-compile --target-os=linux
--cross-prefix=mipsisa32r2el-timesys-linux-gnu- --arch=mips
--extra-cflags=-O2
libavutil 51. 9. 1 / 51. 9. 1
libavcodec 53. 7. 0 / 53. 7. 0
libavformat 53. 4. 0 / 53. 4. 0
libavdevice 53. 1. 1 / 53. 1. 1
libavfilter 2. 23. 0 / 2. 23. 0
libswscale 2. 0. 0 / 2. 0. 0
[h264 @ 0x100f690] non-existing SPS 13 referenced in buffering period
Last message repeated 1 times
Input #0, mpegts, from 'Pirates_remux_short.ts':
Duration: 00:00:59.22, start: 720.665000, bitrate: 33719 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1
DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0.1[0x1100](eng): Audio: pcm_bluray, 48000 Hz, 5.1, s32, 6912
kb/s
Incompatible pixel format 'yuv420p' for codec 'mjpeg', auto-selecting
format 'yuvj420p'
[buffer @ 0x10114a0] w:1920 h:1080 pixfmt:yuv420p tb:1/1000000 sar:1/1
sws_param:
[scale @ 0x10043a0] w:1920 h:1080 fmt:yuv420p -> w:150 h:100 fmt:yuvj420p
flags:0x4
[h264 @ 0x100f690] non-existing SPS 13 referenced in buffering period
Output #0, image2, to 'thumb.jpg':
Metadata:
encoder : Lavf53.4.0
Stream #0.0: Video: mjpeg, yuvj420p, 150x100 [PAR 32:27 DAR 16:9],
q=2-31, 200 kb/s, 90k tbn, 23.98 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
[h264 @ 0x100f690] non-existing SPS 13 referenced in buffering period
frame= 1 fps= 0 q=3.6 Lsize= -0kB time=00:00:00.04 bitrate=
-4.2kbits/s dup=23 drop=0
video:3kB audio:0kB global headers:0kB muxing overhead -100.642523%
*real 0m 24.32s*
user 0m 21.80s
sys 0m 0.78s
On Sat, Jul 7, 2012 at 4:56 PM, Carl Eugen Hoyos <cehoyos at ag.or.at> wrote:
> Pavan Kulkarni <pavanvkbgm <at> gmail.com> writes:
>
> > I'm using the following command to get a thumbnail from a
> > video file. It uses the seek option to grab a thumbnail.
> > The problem is that this command takes up quite some time
> > especially with certain containers such as MPEG-2 TS.
> > (As much as 40 seconds).
>
> Did you try to find out what takes so long?
> Seeking, decoding, encoding (or even startup of the executable)?
> ffmpeg -i input.ts out.jpg
> ffmpeg -ss 18 -i input.ts -vframes 1 -f null -
> ffmpeg -ss 18 -i input.ts -vframes 1 -vcodec copy -f rawvideo /dev/null
>
> Why do you need the select filter?
> Nowadays, FFmpeg should seek to a keyframe.
> If I am wrong, please provide complete, uncut console output.
>
> Carl Eugen
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
More information about the ffmpeg-user
mailing list