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.



Reply via email to