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