[FFmpeg-user] Issues using ffmpeg (as mencoder replacement)

Khelben Blackstaff eye.of.the.8eholder at gmail.com
Fri Apr 1 22:55:26 CEST 2011


Hello.

Although ffmpeg and mencoder use the same library, i always used mencoder
because i found its syntax easier and because ffmpeg didn't have dvd support
(without ripping it to disk i mean).

I read for some time now that mencoder has slow development and people
should use ffmpeg, but since mencoder worked for me i didn't change.
Or so i thought. I noticed some days ago that the videos i converted in the
last 2 months were wrong, so i finally did the change and compiled ffmpeg.

Now, i have some questions regarding ffmpeg usage.

In mencoder i had set up a x264 profile that had
ovc=x264=1 vf=harddup
x264ecnopts=subq=5:frameref=3:weight_b=1:nr=500:keyint=125:bframes=3:
8x8dct:psnr:threads=auto

When i wanted to encode a dvd the command i used would be similar to this:

mencoder -profile x264 dvd://1 -oac copy -vf-pre crop=720:432:0:72 -endpos 7500
-o outfile.avi -x264encopts bitrate=2500 -vobsubout outfile -slang el
-vobsuboutid el

After reading the ffmpeg manpage i tried to convert my command for
ffmpeg and came
to the following command:

ffmpeg -i stream.dump -y -t 02:05:00 -vcodec libx264 -vpre fast -b
2500k -vf crop=720:432:0:72
-acodec copy -threads 2 outfile.avi

It works fine (except that for some weird reason it is quite slower
than with mencoder) but
i didn't find a way to output the subtitle stream. I can use -scodec
copy when the container
supports subtitle streams (like matroska) but i can't make them output
to a different file
like the -vobsubout command. Is there any way to do this ?

After producing the avi with mencoder i used to mux to matroska it
together with the vobsub files
using mkvmerge/mmg so -vobsubout isn't so important because with
ffmpeg i can output .mkv
in one step but it would be nice if it can be done.

My primary problem is that i can't get ffmpeg to properly recognise
the subs on the ripped file.

mplayer dvd://1 gives me:
audio stream: 0 format: ac3 (5.1) language: en aid: 128.
audio stream: 1 format: dts (5.1) language: en aid: 137.
audio stream: 2 format: ac3 (stereo) language: en aid: 130.
number of audio channels on disk: 3.
subtitle ( sid ): 0 language: en
subtitle ( sid ): 1 language: nl
subtitle ( sid ): 17 language: en
subtitle ( sid ): 18 language: nl
number of subtitles on disk: 4

sid 0-1 are the normal subtitles while sid 17-18 are the director's commentary.
mplayer stream.dump correctly shows 4 subtitle streams but it doesn't know
what language they are ofcourse.

When i run ffmpeg or ffprobe i get:
[mpeg @ 0x940050] max_analyze_duration reached
Input #0, mpeg, from 'stream.dump':
  Duration: 02:28:34.30, start: 0.287267, bitrate: 3990 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576
[PAR 64:45 DAR 16:9], 9800 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0.1[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Stream #0.2[0x89]: Audio: dca (DTS), 48000 Hz, 5.1, s16, 768 kb/s
    Stream #0.3[0x82]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
    Stream #0.4[0x31]: Subtitle: dvdsub
    Stream #0.5[0x32]: Subtitle: dvdsub

As you see it finds only 2 subtitle streams. I would not mind if they
were the correct but
they are both the director's commentary (sid 17-18 on mplayer). This
happens only on 2 files though.
It recognises other dvds fine. Is there any way to force ffmpeg to
see/use 0x20, 0x21 Stream ID ?

My ffmpeg version is the latest as of now.

FFmpeg version git-N-28764-g7b9750e, Copyright (c) 2000-2011 the
FFmpeg developers
  built on Apr  1 2011 21:48:17 with gcc 4.5.2
 configuration: --prefix=/usr --libdir=/usr/lib64 --mandir=/usr/man
--enable-shared --enable-gpl
 --disable-ffserver --enable-postproc --enable-libx264 --enable-pic
--enable-libmp3lame

If i forgot to mention information that is vital, i will be glad to add it.

Thank you for your time.


More information about the ffmpeg-user mailing list