Here is the full output of ffmpeg.exe -i (the original ffmpeg comes with Serviio):
C:\Program Files\Serviio\lib>ffmpeg.exe -i bolt.rmvb
FFmpeg version SVN-r23012, Copyright (c) 2000-2010 the FFmpeg developers
built on May 3 2010 19:05:24 with gcc 3.4.5 (mingw-vista special r3)
configuration: --enable-static --disable-shared --disable-ffplay --disable-ffs
erver --enable-memalign-hack --enable-libmp3lame --enable-w32threads --extra-ldf
lags=-L/static/lib --extra-cflags=-I/static/include
libavutil 50.15. 0 / 50.15. 0
libavcodec 52.66. 0 / 52.66. 0
libavformat 52.62. 0 / 52.62. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0.10. 0 / 0.10. 0
[NULL @ 01501700]Unsupported video codec
[rm @ 0140ce10]max_analyze_duration reached
Input #0, rm, from 'bolt.rmvb':
Metadata:
title : ╩Ñ│Ã╝ÊÈ░[www.dream2008.cn]@├¸ðÃ╣À
author : ┴¸├Ñ═├═├
copyright : È¡ÁþË░╣½╦¥
comment :
Duration: 01:36:20.83, start: 0.000000, bitrate: 603 kb/s
Stream #0.0: Audio: cook, 44100 Hz, stereo, s16, 44 kb/s
Stream #0.1: Video: rv40, yuv420p, 640x336, 553 kb/s, 12.05 fps, 12 tbr, 1k
tbn, 12 tbc
Stream #0.2: Data: 0x0000
At least one output file must be specified
The first thing that caught my eyes was the message "[NULL @ 01501700]Unsupported video codec". This made me think this was the cause of my problem.
Examining the above message in more details, I noticed that the video codec reported by ffmpeg was rv40. I supposed it meant RealVideo 4.0, which is in fact a supported format in ffmpeg.
I then tried the following command line:
ffmpeg.exe -i bolt.rmvb -t 60 out.avi
C:\Program Files\Serviio\lib>ffmpeg.exe -i bolt.rmvb -t 60 out.avi
FFmpeg version SVN-r23012, Copyright (c) 2000-2010 the FFmpeg developers
built on May 3 2010 19:05:24 with gcc 3.4.5 (mingw-vista special r3)
configuration: --enable-static --disable-shared --disable-ffplay --disable-ffs
erver --enable-memalign-hack --enable-libmp3lame --enable-w32threads --extra-ldf
lags=-L/static/lib --extra-cflags=-I/static/include
libavutil 50.15. 0 / 50.15. 0
libavcodec 52.66. 0 / 52.66. 0
libavformat 52.62. 0 / 52.62. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0.10. 0 / 0.10. 0
[NULL @ 01501720]Unsupported video codec
[rm @ 0140ce30]max_analyze_duration reached
Input #0, rm, from 'bolt.rmvb':
Metadata:
title : ╩Ñ│Ã╝ÊÈ░[www.dream2008.cn]@├¸ðÃ╣À
author : ┴¸├Ñ═├═├
copyright : È¡ÁþË░╣½╦¥
comment :
Duration: 01:36:20.83, start: 0.000000, bitrate: 603 kb/s
Stream #0.0: Audio: cook, 44100 Hz, stereo, s16, 44 kb/s
Stream #0.1: Video: rv40, yuv420p, 640x336, 553 kb/s, 12.05 fps, 12 tbr, 1k
tbn, 12 tbc
Stream #0.2: Data: 0x0000
Output #0, avi, to 'out.avi':
Metadata:
ISFT : Lavf52.62.0
Stream #0.0: Video: mpeg4, yuv420p, 640x336, q=2-31, 200 kb/s, 12 tbn, 12 tb
c
Stream #0.1: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s
Stream mapping:
Stream #0.1 -> #0.0
Stream #0.0 -> #0.1
Press [q] to stop encoding
Compiler did not align stack variables. Libavcodec has been miscompiled
and may be very slow or crash. This is not a bug in libavcodec,
but in the compiler. You may try recompiling using gcc >= 4.2.
Do not report crashes to FFmpeg developers.
frame= 34 fps= 0 q=4.1 size= 209kB time=5.51 bitrate= 311.4kbits/s dup=0
frame= 59 fps= 0 q=6.7 size= 284kB time=7.37 bitrate= 315.8kbits/s dup=0
frame= 85 fps= 57 q=8.5 size= 425kB time=11.08 bitrate= 314.4kbits/s dup=0
frame= 105 fps= 53 q=23.4 size= 497kB time=12.96 bitrate= 314.2kbits/s dup=
frame= 130 fps= 52 q=21.0 size= 584kB time=14.81 bitrate= 322.8kbits/s dup=
frame= 161 fps= 54 q=17.5 size= 738kB time=18.52 bitrate= 326.6kbits/s dup=
frame= 199 fps= 57 q=15.1 size= 867kB time=22.23 bitrate= 319.6kbits/s dup=
frame= 251 fps= 63 q=11.4 size= 988kB time=25.94 bitrate= 312.1kbits/s dup=
frame= 312 fps= 69 q=21.4 size= 1191kB time=31.53 bitrate= 309.6kbits/s dup=
frame= 342 fps= 68 q=24.8 size= 1258kB time=33.38 bitrate= 308.6kbits/s dup=
frame= 358 fps= 65 q=31.0 size= 1391kB time=37.09 bitrate= 307.2kbits/s dup=
frame= 378 fps= 63 q=31.0 size= 1450kB time=38.95 bitrate= 305.0kbits/s dup=
frame= 416 fps= 64 q=20.3 size= 1548kB time=42.66 bitrate= 297.3kbits/s dup=
frame= 459 fps= 66 q=7.7 size= 1694kB time=48.25 bitrate= 287.6kbits/s dup=0
frame= 500 fps= 67 q=13.4 size= 1823kB time=53.81 bitrate= 277.5kbits/s dup=
frame= 559 fps= 70 q=8.7 Lsize= 2086kB time=59.98 bitrate= 284.9kbits/s dup=
0 drop=846
video:1535kB audio:469kB global headers:0kB muxing overhead 4.138771%
To my surprise, ffmpeg did recode the rmvb file to a avi file with mpg4 video codec. However there was significant quality loss.
I then encoded it to the DVD preset and the quality loss was insignificant to me.
So my questions now are:
1. Why ffmpeg reported "[NULL @ 01501700]Unsupported video codec", but in fact it could recode it?
2. Why Serviio didn't transcode the file and stream to my Samsung device?
Any comments are welcome, please.