Two words: jaw dropping. Check out this demo (double click to go full screen!) by Fabio 'I eat codecs for breakfast' Sonnati. Encoded at a mere 500bkit/sec this demonstrates just how well the H.264 codec can perform at low bitrates. Check Fabio's blog for more details and watch out for more upcoming demos.
I wonder if he will share his encoding settings with us. One thing I can guarantee already is that he set smoothing to true ;-)
I wonder if he will share his encoding settings with us. One thing I can guarantee already is that he set smoothing to true ;-)

# inputfile bitrate framerate resolution audiofreq audiobitrate ptop pbottom pleft pright tmpfile logfile ffmpegpath
# SUBQ - time vs. quality
# 7=highest quality, 35% slower
# 6=high quality
# 5=normal quality - don't use in 2 pass
# ME - motion estimation
# hex=normal quality - don't use in 2 pass
# umh=high quality, 40% slower
# QCOMP
# 0=stills good, motion bad (constant bitrate)
# 1=motion good, stills ok (constant quality)
# 0.6=default
# 0.7-0.8=most people's taste
# KEYINT - keyframes interval (frames, 250 for 25 fps = 10 sec)
# REFS - reference frames
# TRELLIS - Trellis RD Quantization
# 0=disabled
# 1=a bit higher quality, slower
# 2=max quality, very slow
inputfile=$1
bitrate=$2
framerate=$3
resolution=$4
audiohz=$5
audiobitrate=$6
padtop=$7
padbottom=$8
padleft=$9
shift
padright=$9
shift
tmpfile=$9
shift
logfile=$9
shift
fpath=$9
threads=2
subq=6
keyint=$(bc -l <<< $framerate' * 10')
keyint=`echo "tmp=$keyint; tmp /= 1; tmp" | bc`
keyintmin=`echo "tmp=$framerate; tmp /= 1; tmp" | bc`
alloptions="-vcodec libx264 -b "$bitrate"000 -r "$framerate" -s "$resolution" -bf 3 -qcomp 0.7 -g "$keyint" -keyint_min "$keyintmin" -refs 5 -loop 1 -flags +4mv -cmp 256 -coder 0 -me_range 16 -sc_threshold 40 -i_qfactor 0.71 -level 30 -qmin 10 -qmax 51 -qdiff 4 -padcolor 000000 -padtop "$padtop" -padbottom "$padbottom" -padleft "$padleft" -padright "$padright
firstoptions="-subq 1 -me hex -partitions 0 -trellis 0 -flags2 +mixed_refs"
secondoptions="-subq "$subq" -me umh -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -flags2 +wpred+mixed_refs+brdo+8x8dct -trellis 1"
thecommand=$fpath"ffmpeg -y -i "$inputfile" -threads "$threads" -pass 1 -an $alloptions $firstoptions -passlogfile "$logfile" "$tmpfile
echo $thecommand
echo
$thecommand
echo
thecommand="rm "$tmpfile
echo $thecommand
echo
$thecommand
echo
thecommand=$fpath"ffmpeg -y -i "$inputfile" -threads "$threads" -pass 2 -acodec libfaac -ar "$audiohz" -ab "$audiobitrate"000 -ac 2 $alloptions $secondoptions -passlogfile "$logfile" "$tmpfile
echo $thecommand
echo
$thecommand
echo
Would love to be able to stream live with these results! Wonder what kind of hardware it would take!!
currently i don't see any possibility reach this quality for a live stream (with 2-pass encoding), but maybe in 2-3 years we'll have the right consumer CPUs to do that
Would love to see a comparison of the same video in VP6-S.
Thanks !
Anyway, the stills look pretty good :O)
It's calling FFMPEG with _very_ fine tuned parameters. The input parameters are in the first line (inputfile, etc.).
Of course you need to install FFMPEG first, which is not easy. You need to install XCODE first from the OS X DVD, and then Google for some how to. Not easy (quite hard imho).
Amazing video in fullscreen.
I tried myself at home but doesn t work.
Using Mac Osx, Flash CS3, ffmpegx, i created a "hd.sh" file with the script of this article but I have a problem in the Terminal.
I type
/hd.sh parameter1 parameter2
the answer is :
-bash: /hd.sh: Permission denied
Can some body please help me?
thx
B
the parameter list is in the first line of the file, please fill in each (13 in sum)
ffmpegx is not ffmpeg, you need to compile ffmpeg yourself
http://readlist.com/lists/mplayerhq.hu/ffmpeg-user...
flv vcodec parameters that stands for vp6f - ReadList.com
keyint=$(bc -l <<< $framerate' * 10')
keyint=`echo "tmp=$keyint; tmp /= 1; tmp" | bc`
keyintmin=`echo "tmp=$framerate; tmp /= 1; tmp" | bc`
keyint = $framerate * 10 (<- float)
keyint = 1/$keyint (<- int)
keyintmin = 1/$framerate (<- int)
Correct me if i'm wrong...
#Coding filmato (passo 1)
ffmpeg -y -i clip.mov -an -pass 1 -vcodec libx264 -b 120k -maxrate 120k -s 320x208 -aspect 4:3 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -subq 6 -trellis 0 -refs 5 -bf 5 -b_strategy 1 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.71 -qmin 10 -qmax 51 -qdiff 4 -deinterlace output.mp4
#Coding filmato (passo 2)
ffmpeg -y -i clip.mov -an -pass 2 -vcodec libx264 -b 120k -maxrate 120k -s 320x208 -aspect 4:3 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -me umh -subq 7 -trellis 2 -refs 5 -bf 5 -b_strategy 1 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.71 -qmin 10 -qmax 51 -qdiff 4 -deinterlace output.mp4
More on my blog:http://www.alessandroscoscia.it/it/2008/03/04/vide... (in italian)
To the one who asked about how to replica this into MediaCoder, look here:
http://forum.mediacoderhq.com/viewtopic.php?t=3669...
Any suggestions?
ffmpeg -y -i input.flv -pass 1 -an
-vcodec libx264 -b 500000 -r 29.97 -s 1280x720 -bf 3 -qcomp 0.7 -g 299.7 -refs 5 -loop 1 -flags +4mv -cmp 256 -coder 0 -me_range 16 -sc_threshold 40 -i_qfactor 0.71 -level 30 -qmin 10 -qmax 51 -qdiff 4 -padcolor 000000 -padtop 0 -padbottom 0 -padleft 0 -padright 0 -subq 1 -me hex -partitions 0 -trellis 0 -flags2 +mixed_refs -passlogfile logfile.log temp_flash_file.flv
ffmpeg -y -i input.flv -pass 2 -acodec libfaac -ar 44100 -ab 96000 -ac 2 -vcodec libx264 -b 500000 -r 29.97 -s 1280x720 -bf 3 -qcomp 0.7 -g 299.7 -refs 5 -loop 1 -flags +4mv -cmp 256 -coder 0 -me_range 16 -sc_threshold 40 -i_qfactor 0.71 -level 30 -qmin 10 -qmax 51 -qdiff 4 -padcolor 000000 -padtop 0 -padbottom 0 -padleft 0 -padright 0 -subq 6 -me umh -partitions parti4x4+parti8x8+partp4x4partp8x8+partb8x8 -flags2 +wpred+mixed_refs+brdo+8x8dct -trellis 1 -passlogfile logfile.log theoutputfinale.flv
PS. sorry for my bad english :P i'm usually use polish language ;)
Can you embed an flv file into a swf or swc without importing to stage in Flash? ie using a nice h264 encoded file as an asset inside a swf or swc.
1) I have 500 movies to convert mpg to flv, I split the 500 into 5 batches of 100 and tried running the script in 5 instances. The problem I'm having is the resulting flv doesn't play video. Is there a switch being used here that prohibits the script from being ran "x" number of times simultaneously (separate .mpg files of course)?
2) When running a single instance to convert mpg to flv most flv's play just fine but there are some that do not - no video. I know all movies work fine, they were converted previously with more simpler settings. Any ideas?
3) Is there any sites that anyone can suggest/recommend to fully explain each setting? My overall goal is convert these mpg files to flv with the best possible quality while achieving the smallest file size.
Thanks
the problem should be a ffmpeg bug in two pass encoding log files. The log file generated from ffmpeg have always the same name (it appears -passlogfile is ignored). You should call ffmpeg changing directory before the call (one temporary directory for each movies)
Great job, and keep up the good work.