Akamai Adobe HTTP Dynamic Streaming
Finally a good demo of Adobe's new HTTP based Dynamic streaming. Can't wait to dissect this one a bit more. Here is more information about the new feature included in Flash Player 10.1.
Can't wait to come up with an open source solution to this type of streaming.
CrystalHD OSX
The other day I finally broke down and ordered a CrystalHD decoder chip. The CrystalHD is a hardware decoder than can decode h.264/AVC, VC1 and Mpeg2 in hardware. It plugs into a PCI-Express 1x slot. You can install it on an older mac mini or an apple tv. I have to say the results were fantastic. With some higher bitrate shows my mini would skip. But no longer with this magnificent little chip. I would recommend it for anyone who is on older hardware and doesn't want to pay to upgrade their cpu or system in general.
One thing to note is that in order to get it to work with the latest version of osx I had to compile it from source. You can download the source here. If you are installing in osx skip the "install instructions (kext driver)" section and just enter the following into the terminal. this will let the kext load after each reboot.
sudo cp -r BroadcomCrystalHD.kext /System/Library/Extensions/
sudo -S chmod -R 755 /System/Library/Extensions/BroadcomCrystalHD.kext
sudo -S chown -R root:wheel /System/Library/Extensions/BroadcomCrystalHD.kext
One thing I would like to see if it would ever be possible to use this with FFMPEG. Imagine having the CrystalHD decode the frames and have ffmpeg encode them in another format. This would increase transcoding times significantly since most of the computer resources would be freed. I wonder if any one has tried it out.
Tips for learning Erlang
As I've stated in an earlier blog posts, I've been dedicating time to learning Erlang. Erlang isn't the easiest language to learn. Documents and examples seem to get out of date fast and don't always work so well. So this is a list of resources that I've been reading through to help myself learn some erlang. For starters I would recommend the following.
Web Sites
- Learn You Some Erlang
This is a great resource that keeps getting added to. It's not completed yet but it's free and very helpful if you are interested in learning some of the basics. - API / Official Docs
You'll never get too far without a good reference to available API's and official Documentation. It takes a bit to get used to but there is a ton of information here including best practices. - trapexit.org
This site has a ton of resources and tutorials. - Erlang Factory
If you can make it out to one of these events I'm sure you would learn a lot. I've never been but I've heard it's great. You can find some videos on their site. - SpawnLink.com
Great tutorial series about gen_server. Start with An Introduction to gen_server: “ErlyBank”
Books
- ERLANG Programming by Francesco Cesarini and Simon Thompson
I Reccomend this book for beginners. - Programming Erlang: Software for a Concurrent World by Joe Armstrong
I started reading this book but switched to "ERLANG Programming" Seemed easier to fallow for me and went into more detail that helped benefit me better.
FFMPEG 0.6 + Erlyvideo
Previously I posted about compiling FFMPEG with RTMP support. Now I'm going to describe what you have to do to view that content with Erlyvideo running on OSX of course.
Assuming you have MacPorts installed. Run the following command:
sudo port install erlang
Once that is done you are ready to install Erlyvideo. Go here for up to date install instructions (you will also need git installed).
Finally on to the fun stuff. go to http://localhost:8082/
Assuming everything worked alright you should see the flash content loaded. Go ahead open up terminal and run the following command replacing INPUT_FILE with the file of your choice.
ffmpeg -i INPUT_FILE -re -ac 2 -acodec libfaac -vcodec libx264 -vpre default -s 480x320 -f flv rtmp://localhost:1935/rtmp/test
Now switch back to your browser where you have the erlyvideo page loaded. replace the url at the top of the page with.
rtmp://localhost:1935/rtmp/test
Click on the Connect button.
Then towards the bottom of the page click the Play button.
Congratulations you are now streaming video to erlyvideo!!!
Compiling FFMPEG 0.6 with RTMP Support for OSX
The other day FFMPEG released version 0.6 nick named "Works with HTML5". Today I'm going to try to describe the steps on how to compile this new release in OSX with RTMP support. This wont be for the faint of heart.
First you will need to download and install Xcode and then MacPorts. Please go here for MacPort download and install instructions.
Once when MacPorts is done being installed you will need to install a few packages. They include yasm, pkgconfig and openssl. So lets begin getting those installed first. Type the following command into terminal and then press enter.
sudo port install yasm pkgconfig openssl
Once when this is complete you will need to download a few extra files. We are going to compile these manually so we make sure we have the latest and greatest.
FAAC v1.28
FAAD2 v2.7
Lame
LIBRTMP
x264 (download the latest build)
FFMPEG 0.6
First you will want to extract each archive. In OSX you can double-click on the archive to extract or else in terminal use the following command.
tar xzf FILE_NAME.tar.gz
Now it's time to compile each library. Don't worry its very easy. For the rest of the steps we will only be working in terminal. So open it up and navigate to where you downloaded your files. Mine are located in my Downloads folder.
cd ~/Downloads
Enter the following commands to navigate to your faac folder, configure, compile and install.
cd faac-1.28/
./configure
make
make install
Now to compile Faad
cd ../faad2-2.7/
./configure
make
make install
Lames turn
cd ../lame-3.98.4/
./configure
make
make install
RTMP is a little different.
cd ../rtmpdump-2.2e/
make SYS=MacOSX
make install
Your path to h264 will most likely be different from mine.
cd ../x264-snapshot-20100629-2245/
./configure
make
make install
Finally FFMPEG 0.6. This also requires a few more steps.
cd ../ffmpeg-0.6/
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264 --enable-libvpx --enable-librtmp
make
make install
Done! now you are ready to encode your file and send it to an RTMP server. I've been using the following command to test this.
ffmpeg -i INPUT_FILE -re -ac 2 -acodec libfaac -vcodec libx264 -vpre default -s 480x320 -f flv rtmp://localhost:1935/rtmp/test
Just replace INPUTE_FILE with the video you want to transcode and rtmp://localhost:1935/rtmp/test with the RTMP server you want to publish to. This could be a Flash Media Server, Wowza Server, Red5, Erlyvideo or any other server that supports this functionality.
Google Font Directory
For all of those designers out there who would like to be able to take fonts from Google Font Directory and use them in your designs. Here is a link to download all the Google Fonts. These Fonts are True Type fonts.
Enjoy!
learn you some erlang
So over the past month now I've been devoting a lot off effort to learning a programming language called Erlang. Erlang is a functional programming language that is designed for large-scale communication applications with specific focus on high concurrency and error handling. The reason why I've been learning this language is because how well it scales and since I love working on the types of applications that require servers to scale fast if needed. I figured it was about time to learn something that worked a little better.
So I hope over the coming months I'll be able to describe better my experience learning erlang coming from a Flash / Flex / AS3 / JS / HTML / PHP / Python type of background.
First I plan on converting my current wordpress blog over to zotonic and then try to develop a cool video streaming application that will allow you to watch movies from your Plex DB / XBMC DB over the web using erlyvideo.
MakeMKV Plugin – On Hold
So it's with regret that I have to inform everyone that for the time being there will be no more updates to the MakeMKV / Plex plug-in. That is how it'll be for at least now. There are just too many bugs trying to get Plex to even stream a MakeMKV stream and other possible bugs with MakeMKV since it is in beta still. I'll keep investigating this in the future to see if I can get it working. But for now, This plug-in is now on hold.
Meet The Heavy
I've always been a fan of the game Team Fortress 2. It's a really fun game to play. There is a lot of strategy involved and a good bit of humor too. Ever since I saw this model of the pyro I've been wanting to get a hold of one ever since. We'll that wait will soon be over. Gaming Heads has announced they will be creating 12 inch tall replicas of all the Team Fortress 2 characters. If you are one of those obsessed individuals you can run over to their site and get your grubby hands on a brand new 12 inch tall Heavy. Check out the crazy cool pictures of this guy.
Silverpac Touch Thermostat
And all this time I thought my thermostat was cool. Little did I know. Today when I was googling for a touchscreen thermostat that was also zigbee enabled I came across this little beauty.
It's called a it's called the SilverSTAT 7. From what I can gather it'll be released around June for about $600. So for those who are home home automation enthusiasts and have a few bucks to throw or for those who just like to drool over the possibility of maybe one day touching such an item, like myself. Here is what you get.
- 7" Touch Screen
- Built in WiFi
- Z-Wave
- Zigbee protocol
- streaming photos, music and other content
- A full week's worth of programmable temperature
- weather conditions
- home's energy consumption
- power usage on a per-appliance
- time management with a calendar and scheduled alarm notices
- stocks
Here are a few more pictures to keep you drooling.

















