Hi Allan,
Glad to have been some help. I can't answer any of your other
questions, so it might be worth checking out the Totelm mailing list.
The mplayer developers have a public ftp upload you can use to send
them problematic files, maybe Totem devs have the same?
Comments continue below...
On 13 Jul 2010, at 21:20, Allan Gottlieb wrote:
...
You didn't show us what the output (or verbose output) of your ffmpeg
command was, so we don't know if the original .m4v had shitty
quality,
or if you transcoded it.
Here it is with verbose output
ajglap video # ffmpeg -loglevel verbose -i Game_Theory_Lect_20_s.m4v
Game_Theory_Lect_20_s.avi
FFmpeg version 0.6, Copyright (c) 2000-2010 the FFmpeg developers
built on Jun 21 2010 18:01:44 with gcc 4.4.4
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/
lib64 --mandir=/usr/share/man --enable-static --enable-shared --
cc=x86_64-pc-linux-gnu-gcc --disable-debug --disable-network --
enable-libmp3lame --enable-libvorbis --enable-libx264 --enable-
libxvid --disable-indev=v4l --disable-indev=v4l2 --disable-indev=oss
--disable-indev=jack --disable-outdev=oss --enable-x11grab --disable-
vdpau --disable-vdpau --disable-vaapi --disable-altivec --cpu=host --
enable-gpl --enable-version3 --enable-postproc --enable-avfilter --
enable-avfilter-lavf --disable-stripping --enable-hardcoded-tables --
disable-doc
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
Seems stream 0 codec frame rate differs from container frame rate:
5994.00 (5994/1) -> 29.97 (2997/100)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Game_Theory_Lect_20_s.m4v':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
Duration: 00:33:14.24, start: 0.000000, bitrate: 636 kb/s
Stream #0.0(eng): Video: h264, yuv420p, 320x240, 513 kb/s, 29.97
fps, 29.97 tbr, 2997 tbn, 5994 tbc
Stream #0.1(eng): Audio: aac, 44100 Hz, stereo, s16, 118 kb/s
Output #0, avi, to 'Game_Theory_Lect_20_s.avi':
Metadata:
ISFT : Lavf52.64.2
Stream #0.0(eng): Video: mpeg4, yuv420p, 320x240, q=2-31, 200 kb/
s, 29.97 tbn, 29.97 tbc
Stream #0.1(eng): Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
frame=59767 fps=470 q=3.6 Lsize= 67863kB time=1994.23 bitrate=
278.8kbits/s
video:48981kB audio:15580kB global headers:0kB muxing overhead
5.113521%
ajglap video #
...
3. The conversion from .m4v to .avi costs quality.
ffmpeg noted differing frame rates. Is that relevant?
Since the conversion of a 30 minute movie took
only a very few minutes, your estimates above suggest that it was
just remux-ed and not transcoded, at least not using a demanding
codec.
A remux should never affect quality - you're taking the same video
stream and putting it in another container. The video itself is
unchanged.
My time estimates were based my use of older Pentium 4 machines - I
can only guess you have a Core 2 Duo or something? Also, I don't know
how large this file is? 33 minutes? My "18 - 24 hours" estimate was
based on a 2 - 3 hour DVD, but also with 2- or 3-pass encoding (which
you're obviously not performing) and high settings generally. A DVD
would have higher resolution than your 320x240 clip. Nevertheless, I'm
a little surprised at how quick your machine is - all my computers are
so old. :(
The way I read the output above is that ffmpeg determines the input
file to be 513 kb/s video, and its defaulting to 200 kb/s output - so
that *is* a transcode. mplayer also states the original to be 513 kb/
s, I notice. In fact you would be able to determine the bitrate of
the .avi file by running the `mplayer -identify` command on it - this
should confirm that your .avi file is about 200 kb/s, I imagine. That
confirms transcoding - if you're remuxing the video then the bitrate
will be lower.
The bitrate is a measure of how much space is consumed on disk to
store one second of video. So, using the same codec and source
material, a lower bitrate will tend to be lower quality, as less space
is consumed storing the details. I think you will probably find
your .avi to be about 30% - 40% the size of your original .m4v - of
course it will be lower quality!
That you have determined the original video to be in h264/AAC is good,
I think. You might try downloading a TED talk, as I think they too use
these same common codecs. See if Totem plays that.
e.g.: http://www.ted.com/talks/download/video/9151/talk/899
Looking at the wikipedia link I sent you before, I think .m4v is just
the same as .mp4. I think that if Totem plays an .mp4 TED Talk but not
your file, then there's a problem with the encoding or format with
your video.
You might try remuxing your .m4v into .mkv, but I'm not sure what tool
you'd use. I _think_ you can remux into .avi using `mencoder -copy` -
I believe an .avi containing h264 and AAC breaks specification, but I
think most Linux players will tolerate it happily.
I can't immediately think of any other comments to make. Hopefully
this will give you some more directions to explore.
HTH,
Stroller.