[MEncoder-users] How to transcode MTS files recorded by Panasonic HDC-SD100 camera?
marton_sigmond at yahoo.com
Wed Feb 15 21:30:05 CET 2012
You are the man, -sws_flags fast_bilinear works like a charm!
I finally got 28-30 FPS.
Strangely, the number of threads does not make any difference.
Probably because of this:
> [h264 @ 0x759d00]Cannot parallelize deblocking type 1, decoding such frames in sequential order
This is why I had the three separate process idea.
perf report dumped out this (just the head of it):
# Samples: 1781874
# Overhead Command Shared Object Symbol
# ........ .............. .................................. ......
67.34% ffmpeg /usr/lib/libavcodec.so.52.72.2 [.] 0x00000000295472
13.97% ffmpeg /usr/lib/libswscale.so.0.11.0 [.] 0x000000000409b5
5.51% ffmpeg /usr/lib/libavcodec.so.52.72.2 [.] ff_h264_decode_mb_cabac
2.08% ffmpeg /usr/lib/libmp3lame.so.0.0.0 [.] 0x0000000002a9a1
1.65% ffmpeg /usr/lib/libavcodec.so.52.72.2 [.] ff_emulated_edge_mc
1.19% ffmpeg /usr/lib/libmp3lame.so.0.0.0 [.] L3psycho_anal_ns
0.78% ffmpeg /usr/lib/libavcodec.so.52.72.2 [.] ff_h264_pred_direct_motion
0.76% ffmpeg /lib/libc-2.11.1.so [.] memcpy
0.71% ffmpeg /usr/lib/libavcodec.so.52.72.2 [.] ff_epzs_motion_search
0.70% ffmpeg /usr/lib/libavcodec.so.52.72.2 [.] ff_estimate_p_frame_motion
Thank you very much for the many useful hints you shared with me.
From: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
To: Marton Sigmond <marton_sigmond at yahoo.com>; MEncoder usage discussions <mencoder-users at mplayerhq.hu>
Sent: Tuesday, February 14, 2012 10:16 PM
Subject: Re: [MEncoder-users] How to transcode MTS files recorded by Panasonic HDC-SD100 camera?
On Tue, Feb 14, 2012 at 12:12:30PM -0800, Marton Sigmond wrote:
> That is above 80 FPS.
> Following command is executed at 39 FPS:
> ffmpeg -threads 1 -i %out -f null -s vga -aspect 16:9 -
> This one is 42 FPS:
> ffmpeg -threads 1 -i %out -f null -r 25 -
> However when I combine the two it is only 19 FPS:
> ffmpeg -threads 1 -i %out -f null -r 25 -s vga -aspect 16:9 -
You said your input is 50 fps.
So the scaling halves the speed, and -r 25 halves it once more
(because with -r 25 you need to decode 2 frames to encode one,
and the fps value is in encoded frames).
However it would have been more interesting to see the -threads 8
(or similar) results.
perf record ffmpeg ...
might give an idea where most time is spent, too.
Most likely you should start by choosing a simpler scaler.
For mencoder/mplayer that is set with the -sws option, and the default
is fast bilinear.
Use -sws_flags fast_bilinear to choose the same for FFmpeg.
For 720p input and on a dual-core Phenom changing -threads 1 and no
sws_flags to -threads 8 -sws_flags fast_bilinear resulted in
80 fps -> 125 fps.
Going to -sws_flags neighbor gave 130 fps.
> One could decode the input stream and convert to 25 fps (1), a second one could resize the stream (2), and a third one could encode the final mpeg stream.
A large enough -threads value should cause decode to run on different
cores than the rest.
MEncoder-users mailing list
MEncoder-users at mplayerhq.hu
More information about the MEncoder-users