Showing posts with label Roku. Show all posts
Showing posts with label Roku. Show all posts

Saturday, August 3, 2013

HuluPlus vs Netflix on Roku

HuluPlus advertizements recently got out of hand completely. When I first subscribed to HuluPlus there was one ad per break and it was 15 to 30 seconds. Now there are two to tree ads 30 seconds each. This is completely unacceptable for the paid service that shows mostly major networks content which is available for free over the air or online.
So I ditched Hulu and went with Netflix. I found Netflix to have better selection of streaming content although a lot of content only available on DVD.

Hulu has custom interface that became horrible after upgrade. It is extremely slow, unintuitive and often causes Roku to reboot. Netflix on the other hand has interface built using Roku widgets and while it looks outdated, it is very functional and fast. For example fast forwarding on Hulu only shows one thumbnail and it is hard to estimate where in the movie you are because the thumbnail does not update adequately. On Neflix several thumbnails are shown and navigating works very well.

Hulu seems to be pedaling some specific content with large banners. I wish they put as much effort in to making interface functional as they put in to preventing users to skip their ads. For the type content that I watch, I found Netflix to have better selection, more modern movies, more BBC shows, more and better kids programming. Netflix has a lot of Disney programming which Hulu lacks. Hulu instead has some Nicolodeon shows which are completely stupid. My kid seems to like Netflix selection much better.

If you put off by ads and do not care for current reality shows, Netflix is the way to go.

Saturday, May 25, 2013

Roku new interface review

I received Roku interface update about a week ago. Before the update I was looking for reviews of the new interface but aside from paid "technology writers" I could not find any unbiased reviews. There are voices of criticism on Roku forums but they are quickly drowned out by the "you have no rights to criticize" crowd.

Here is my review in a few words - the new interface SUCKS! It has a few differences from the old one, mainly that is is now grid of icons versus strip of icons in the old one. The icons are much smaller and the text is smaller and harder to read. The ad on the other hand is much bigger. Ad takes up more than a third of the screen and so annoying that it prompted me to find a blocking solution.

This new interface was designed by a marketing person who has no idea about usability of interfaces on TV. Previous interface was not a usability example but it was tolerable. The font was readable, the icons were large. The new one goes against all good design guidelines, except if your guidelines are to show giant ads and piss off all users of the device.
Navigation to a given icon is now faster since one can navigate in two directions instead of one but the interface startup is slower. It also takes more memory or maybe the new software is slower over all. It affects other apps and they are slower to start and have to fetch images more often. Home button now brings you in to the menu instead of the application icon as it used to do. To navigate back to the app screen you need an extra press.
Roku tried to better integrate the app store but I think they failed. Roku store is still as ugly as ever and loads very slowly. The settings now a menu item on the left instead of an icon and has greater chance to be selected by mistake. Search is also a menu item which is an improvement as it can be reached faster.

The video, when streamed from the local server, starts faster. Positioning within the video is also seems faster. New software fixed crashes when navigating within MKV files. I only tried with one file so this conclusion may be a bit premature. When position is changed within MKV file that is streamed over HTTP, most of the time first few seconds of video is broken but audio is OK. After few seconds video recovers. Previous version locked up the box, which rebooted after watchdog is expired. The new version seems to hold up.

The new Roku interface is definitely worse than the old one. It is slower to start, icons are smaller and ad is much larger and obtrusive. The software over all seems to slow down old apps. On the other hand video navigation is faster and MKV files  play better when streamed. I am disappointed with this update and will try to figure out how to prevent Roku from auto updating in the future.

Blocking ads in Roku launcher

New Roku interface sucks! I will talk about it in my later post in details. The size of ad is increased probably 8x. Before I did not think  it would be worth blocking Roku ad servers because ads were not in your face and not intrusive. Now ad occupies almost half of the screen and is very annoying.

After some research online I found the servers that Roku uses to host its ads. Below is the list of servers that should be blocked to stop Roku from serving ads:
  • api.roku.com
  • cloudservices.roku.com
  • channles.roku.com/images
Most modern routers have some sort of URL filtering abilities. Adding these URLs to the filtering list solves ad problem nicely. So far the only downside that I found is that Hulu Plus starts a bit slower. It maybe trying to hit the server for updates. Another side effect of blocking these links is that the Roku channel store is no longer works. Your loaded channels work OK but you can not get the new channels. This works for me, in fact it is an additional benefit as you child will not be able to browse the channel store and to download any unwanted apps. If you start the app store when these URLs are blocked, upon returning in to the main menu you will not be able to see your apps for a few minutes. This most likely caused by the network timeout and check for application updates.

If you have older Roku software you can block zedo.com domain and that would block all ads in the older Roku software.

I can not take credit for discovering these URLs, I just looked them up on the Internet. I hope this post will save you some time.

Sunday, May 19, 2013

Watching America's Test Kitchen on Roku

Recently PBS and PBS KIDS channels were made available on Roku. Unfortunately America's Test Kitchen is not a part of PBS shows offered on Roku and it is one of our favorite shows. I this post I will explain how you can watch this show on Roku.

More than one year of episodes is available to watch in your browser for free on the show website. If you subscribe, you can watch all seasons of the show. The trick is to use Roku to do this. I have to warn you that the process is somewhat time consuming and not everyone would want to do this.

You will need software listed below and you can use google to find it. All software is free.
  • rtmpdump - this is the tool used to download the episodes
  • RTMPDumpHelper - this tool is used to make downloading process very simple
  • ffmpeg - this tool is used to convert downloaded video to the format understood by Roku
  • MyMedia - this software is used to play videos on Roku. This can be substituted by any software capable of doing the same thing or by playing videos from the USB media if your Roku is capable of doing so.
First you need to download episodes that you want to watch. Unfortunately downloading must happen in real time  so you have to be patient here. You also can not download multiple shows at the same time. Install rtmpdump and RTMPDumpHelper you your computer. Open RTMPDumpHelper and navigate to America's Test Kitchen website. Select episode that you want to download. You will see that rtmpsuck.exe will save advertisement first and then will start saving the episode. You can ether watch the episode or can go and do something else for 20 odd minutes. After episode is finished playing in your browser you will have a copy on your hard drive. You can repeat this process for any episode that you want.

Next step is to convert the video in to format that Roku will recognize. The original video is encoded correctly but it is multiplexed in to flash video format. All you need to do is re-multiplex this video in to the mp4 container. Use following ffmpeg command line to it:

ffmpeg -i input-file.mp4 -acodec copy -vcodec copy output-directory/output-file.mp4

Replace your input and output file names with correct episode names.This command will very quickly re-multiplex video. It only takes few seconds per episode on any modern computer.

Now you can play your downloaded videos on Roku using MyMedia (my favorite), Plex or any one of many local playback apps. You can also put episodes on USB drive and play them directly on your Roku if your device supports it. As a bonus after you downloaded the show you can store it on DVD and watch it any time you want to in the future. The show is streamed in 640x352 resolution and looks very good on our CRT TV.

Thursday, October 18, 2012

MPEG-4 (Xvid or Divx) on Roku

In my earlier post I wrote that Roku can decode MPEG-4 encoded files. This is only partially correct. The Roku can decode some of the MPEG-4 encoded files just fine but some other files produce heavy stuttering during panning scenes. The reason is unknown to me as of yet.
The problem files should be transcoded in to h264 using ffmpeg or Handbrake. Using ffmpeg and veryfast or ultrafast preset video can be transcoded very quickly at about 10x of real time playback rate on the Phenom x4 9750.
Most of the MPEG-4 encoded files however can be decoded on Roku without any problems as long as you convert them in to the mp4 container and re-encode the audio. The file size will be smaller when it is transcoded  to the h264 but if you want to save time and for "watch once" content the MPEG-4 option is good.

Thursday, October 11, 2012

Roku BIF files

Your Roku supports pretty cool way to do trick modes - the bif files. I think this is Roku specific mode because I have not seen anyone else doing this. The bif file is essentially archive of the frames in jpeg format with an index at the beginning of the archive. Each frame is taken periodically, every 10 or so seconds. Roku SDK contains a biftool utility for Linux and Windows and also a document describing internal format of the bif file. This document is very basic but it gives an initial understanding. I think a Python script would be more useful and more portable since it would run on any system and would provide the source code to fix any bugs.
To create bif file you need to extract frames from your video and save them in to jpeg files. Each file is named as a number starting from zero, i.e. 00000000.jpg, 00000001.jpg, etc. The number in the name signifies the position in the index of the bif file. The position is multiplied by the interval that you provide when generating the frames and when creating the bif file. For example if your interval is 10 seconds and your file name is 00000023.jpg the frame would be located at 230 seconds in to the video. When you navigate in your video, Roku would show frames from the bif file corresponding to current position in the video. The effect is pretty neat but it has problems. The first problem is that it is hard to achieve a good precision in this manner. The generated frames do not correspond to the key frames and when you start your video it is usually a few seconds off the displayed frame, I would say within 10 seconds. The second problem is that the process to generate bif file takes time and I am not sure if it is worth the effort.

The process

The process itself is pretty simple but may involve getting Roku SDK. You  would need to register with Roku and download Roku SDK that contains biftool.exe utility. There is also bif file generation tools that sold online but I have not tried them. You would also need to download ffmpeg but most of people who stream to Roku from PC would already have ffmpeg.
There is also a Python tool that generates bif file. Search for makebif.py and you will find this tool. It works just as well as the tool from Roku but you loose some control if you do not know how to program Python.
The first step is to generate frames from the video file over the regular intervals. Lets assume 10 second interval for this example but you can adjust your interval to what you feel is appropriate. Create a directory to contain you images and run the following command:
ffmpeg.exe -i video.mp4 -f image2 -r 1/10 -s 240x180 directory/%08d.jpg
I encountered a problem with the later version of ffmpeg - the first few images are generated at a very short interval. This causes all remaining images to be off by a few seconds. To remedy this problem first few images should be removed and the rest should be renamed accordingly. Shell script would do the job.
Next step is to run the biftool.exe to generate the bif file:
biftool.exe -t 10000 directory 
The -t parameter indicates interval between images in milliseconds. There are other parameters that can be passed to the biftool but they do not seem to work. This will create a file named direcotry.bif which is the resulting bif file. You need to rename this file in to a video.bif to match the name of your mp4 file. Now load up your video in MyMedia player or your other favorite player and enjoy. During the fast forward operation the images would be displayed instead of a simple progress bar.

The conclusion

I am not sure if the process is worth the effort if you want to watch a video just one time. It may be worth the effort for your kids videos or something that you want to keep and will watch over and over again. I also think that the biftool from the Roku SDK is pretty poor and the python version is much better, especially if you can modify it. The python version can be made to automatically delete first few images and can be fixed if any problems are found. At the end the process and the result was fun to try. If you are in to organizing your video collection this maybe something that would be useful to you.

Thursday, September 27, 2012

Encoding content for Roku 2 and MyMeida

There are many sources on the Internet that explain how to encode content for Roku 2. Unfortunately most of the sources are obsolete and use outdated versions of tools. I will try to share my experiences in this post.

The simplest way to encode content for Roku is to use Handbrake. The current version 0.9.8 includes Normal preset which works well with Roku. The High preset also works but sometimes produces out of sync video and audio. It also takes significantly longer time to encode with the High preset. Selecting MP4 container and leaving all other options in their default state works well and gives reasonably fast encode with good quality video. Please note that Normal preset does not support multichannel audio by default.
Encoding with ffmpeg is a little bit more involved but gives a great deal of control over encoding time as well as encoding quality. This is example command line that works with ffmpeg version 20120924-git-bbe9fe4:
ffmpeg.exe -i "video.avi" -acodec libvo_aacenc -ab 128k -ac 2 -vcodec libx264 -preset veryfast -profile main -crf 18 -threads 0  -y "video.mp4"
This will produce video compatible with Roku but the bit rate would be on the higher side. To decrease bit rate different preset can be used. Following presets are available - ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo. Start with medium (default) and go faster until the balance between encoding speed and bit rate is satisfactory. You can also use high profile but it will slowdown your encoding. When using high profile specify -level 4 option because Roku does not support anything above level 4:
ffmpeg.exe -i "video.avi" -acodec libvo_aacenc -ab 128k -ac 2 -vcodec libx264 -preset veryfast -profile high -level 4 -crf 18 -threads 0  -y "video.mp4"
Faster presets generate larger files and slower presets generate smaller files. Try it out to see which one works well with your computer and gives you smallest file in an acceptable time. The veryslow and placebo presets together with high profile do not work with Roku and cause macroblocks and frozen picture during decode

To my surprise Roku can also decode MPEG-4 Part 2 (Xvid). Any avi file that is encoded with this codec can be quickly converted in to MP4 file without re-encoding the video. Audio most likely has to be re-encoded but this takes much less time than video encoding. Roku only supports AAC audio and Xvid files usually contains MP3 or AC3 audio. To convert compatible Xvid file use this command:
ffmpeg.exe -i "video.avi" -acodec libvo_aacenc -ab 128k -ac 2 -vcodec copy -threads 0 -t 120 -y "video.mp4"
To test if your file would work without completely converting it use -t 120 command line switch. This would convert first 120 seconds of video and allow you to test it out with your Roku. Remove this switch from command line after you satisfied that the resulting video works. Xvid was and still is a very popular codec and people accumulated a lot of content encoded with this codec. DivX codec should also be compliant with MPEG-4 Part 2 but I have not tried converting this type of files as I have none.

I found that Roku MKV support is very poor when streaming over the network. The device often crashes when starting video playback or trying to seek within the content. When played from the USB stick there are no such problems. To avoid any issues it is best to convert mkv files in to mp4 which can be done without re-encoding video and audio in most cases. You need to make sure that your mkv file contains h264 video and AAC audio. You can do this by using ffprobe which is a part of ffmpeg package. You can convert container with ffmpeg or mp4box tool. Following command line works with ffmpeg:
ffmpeg.exe -i "video.mkv" -codec copy "video.mp4"

Stay tuned for more Roku information.

Sunday, September 23, 2012

Handbrake Lipsync and Roku

I occasionally have lipsync problems with Roku when encoding videos with Hanbrake. Handbrake does not appear to give you any control over audio or video delay. In theory, if the source is correctly synchronized the output should be synchronized as well. In practice that works only with VLC but not with Roku.
I found that the profile selection affects lipsync the most. I am not sure why that is, but Roku handles high profile poorly as far as audio synchronization goes. I performed several tests and all of them came out with the same result - audio is ahead by about 1 second. VLC plays these videos correctly but in Windows Media Player lipsync is off the same way as Roku. This can serve as a test - if WMP plays video correctly, Roku will too.
What is interesting that the "Preview" does not show any issues in WMP or VLC, therefore checking just preview alone would not help. You would need to encode about 10 minutes of video to judge correctly.
If you are encoding lower quality file, it does not make sense to encode in high profile as the source is already low quality. If you want to preserve quality as much as you can, adjust "Quality" slider in the "Video" tab to 18-19. You will get a bit better quality at the expense of the file size.
At this moment my recommendation would be to stick with "Normal" preset when encoding for Roku, especially for lower quality content.

Saturday, September 8, 2012

Roku: review after few months of use

We have used our Roku XS devices for a few months and there are few things I wanted to say.

The honeymoon is over

 I liked this device initially but as I used it more and more my opinion about it plummeted. Now the initial good impression is completely displaced by its problems and quirks. For starters there are a lot of problems with the hardware and the software. My first Roku XS remote is died within a week and I took the device back to Costco for a replacement. My second Roku XS was rebooting randomly when in the sleep mode and not booting back after that without power cycle. I took that one back to Costco too. I did not even unpack the replacement Roku and will take it back this weekend after more frustrations with the current unit.

Roku problems

Where do I begin? 
Automatic updates to the software - this has to go. Roku updates itself to the new version of the software without any way to revert back. The new software at times is worse than the previous but there is no way to stop the update. If you find a good version of the software you can't keep it on your device. The bottom line is that this feature will bite Roku (the company) in the rear one day.

HuluPlus - we have been using this service to watch TV after dropping the satellite. The app is bad from usability standpoint and also the service is slow. I have no problems with their content, if one does not like the content, one does not have to subscribe. I do have a lot of problem with their inability to deliver it. Half of the movies that I tried from Criterion collection fail to play smoothly. Hulu states that I need 3Mb/s service for HD quality. Well, I have 19Mb/s at all times and I want to watch SD. There is no way to select SD on Roku and videos do not play well. The transition between commercials and content often result in macroblocking for a few seconds. Browsing content is also terrible as it is very slow on the Roku app. The app itself is huge memory hog and does not stop running when you exit from it. Because of this all other apps suffer when Hulu is started.

Codec and container support on Roku is terrible. They should fire the QA department and get a new one. The only codecs they claim to support is the h264 and the WMV. That is a blatant lie. WMV is not well supported and a lot of videos do not play and worse cause Roku to lockup and reboot after watchdog is expired. Same with the container support. The mp4 container is OK. Files are recognized and played correctly most of the time, except some files produce lipsync problems which can not be fixed by transcoding. PC plays these files just fine but not Roku. The mkv container is also on the list of supported containers but this is a blatant lie as well. The files in the mkv container often cause Roku to lockup and reboot and even if the file can be played, seeking in the file causes reboots. This is my biggest problem with Roku.

Roku also claims that device supports subtitles. Technically it is true but the support is very finicky as the file must be formatted just right. VLC has no problems with the file but Roku will not play it if it is encoded in Unix format or has no empty line at the end or numbers do not start with 1 or many other reasons.

Another bad miss is absence of the parental control, as well as the inability to select applications that are loaded on the specific device under the same account. If application was removed from one device it will be removed from another linked to the same account.

Now to the general content selection. It is true that Roku has many more channels than say WDTV or a networked DVD player but most of the channels are junk, just like your cable or satellite. Hulu, Netflix, Amazon are available on most of the other devices so Roku does not get any credit here. On other devices the quality of streaming is better however. The other channels like HBOGO require subscription to the HBO on cable?! If I have a subscription to cable why would I need Roku to watch it? Private channels do add to the selection but they come and go - stop working for no reason and then start working again. Of course most of them are not getting paid but then why bother?

The user interface on the device is too simplistic and often fails to respond to the remote. I am not sure if this is app problem or in general Roku problem but with closed source system we will never know.

At the end the only app I really like is MyMedia which allows you to stream content from your PC. That app works OK and you can stream your pictures movies and music collection to the TV. It is also open source so you can modify the app or the server and add the features that you want.

Conclusion

Would I recommend Roku after a few months? Maybe, most likely not. If you want to play movies that you took with your camera or ripped from DVDs, the answer is HELL NO. If you want to watch Netflix or Hulu, the answer is maybe. I would get a networked blue-ray for that. For the same $100 you will get more functionality.
Roku is clearly used the wrong chip for their product! They should have used a chip that is capable of playing many more formats. Even the same Broadcom can supply a number of chips that are much more capable. In any event they should test the software better to make sure simply playing a file to the device would not cause a reboot!

Thursday, August 16, 2012

Getting the most out of your Roku

So you bought a Roku2 box and wondering how to get the most use out of it. In this post I will try to share my experience and thoughts on the subject.

My first recommendation would be to get a Pogoplug classic for $30 and install ArchLinuxARM on it. Then install MyMedia server on your new Pogoplug and enjoy streaming content from your local network. Pogoplug and MyMedia are perfect match for your Roku. If you have kids who wants to watch DVDs over and over this setup makes a lot of sense. Just rip your DVDs and place them on your Pogoplug server and your kids can enjoy them any time without trashing your disks. The server can also be used for backup of your computers if the drive has enough space.

Hulu is one of the options to get your TV programming. It has a lot of foreign programming, Korean and Australian being predominant. It also has Criterion collection movies. Hulu application is pretty bad as far as software is concerned. It does not throttle bit rate and on the slower connections video stutters a lot. I wish Hulu addressed these problems since the only people who suffers are paying customers. At the end Hulu is not that expensive and may be worth it if you want to cut the cable.

Crackle is another good option. Content is so so but the application is OK enough and I did not have any problems playing videos. The only problem is that advertizements are not as well integrated and the ad experience is worse than on Hulu. For free though one can't complain.

The other option is to download content using Bittorrent client. I would recommend qBittorrent but there are no shortage of clients. A lot of new content already encoded in h264 format which Roku can play. If however your content is encoded in divx, you would have to transcode it in to the h264. Hanbrake is one of the best applications to do this. Just select Normal profile and off you go. The application is very easy to use and produces videos that have no problems with Roku. Just make sure not to use Mkv container. Although Roku claims to support this container, it has lots of problems playing and navigating the content, and often crashes.

If your kids like PBS shows, most of them can be downloaded with a little patience and know-how. Rtmpdump would be the application to use for downloading and Wireshark is the application to use for capturing the show URLs. I downloaded and transcoded for Roku whole seasons of Fetch and Cyber Chaise. I am surprised why PBS does not put these seasons on the web for everyone to download or maybe just for people who make donation.

Over all Roku can keep you entertained just enough, especially if you are not addicted to the TV.

Friday, March 16, 2012

Roku2 vs WD TV Live

I recently picked up Roku2 at Costco. I figured that we can try using it for streaming some media from the internet and the PC. My initial impressions were not very good because of the defective remote. The remote would lock up about twice a day and I had to remove and replace the batteries and that was very annoying. Other than that device was OK but it did not support many formats. After talking to the Roku customer support person I returned device to Costco and got WD TV Live which a lot of people liked. After using Roku2 and WD TV for a week each I formed my opinion.

In streaming from the internet Roku wins hands down. It has many more channels, some even very good. If you only want to use Netflix and Hulu, WD TV is OK. If you want more choices Roku2 is your box! It has bunch of educational channels like Khan Academy and MIT Open Courseware.

If you want to stream variety of formats locally WD TV could be a better choice if you do not want to transcode. Since I occasionally had to transcode video for iPod, I already had Handbrake and has no trouble transcoding for Roku. Roku only supports H264 and VC1 codecs and only few containers, while WD TV supports a large selection of codecs and containers.

To stream locally with WD TV you can use DLNA server or just use windows sharing. Windows sharing is dangerous to use over wifi since my network is not secured. All DLNA servers that I used are huge and clunky. At the end I used ps3mediaserver which after running overnight grew to 1GB in size. There is NO REASON why a glorified web server should be that large.
To stream to Roku, one also has several choices. I tried two - Rocksbox and MyMedia. Rocksbox is pretty good and works well. It costs $15 after a month trial period. It works together with the monogoose webserver or any other webserver that you can configure. The monogoose server is light, small and fast. It is very easy to configure.
MyMedia server has its own server solution written in Python and the source of the Roku app is included. I liked that approach since I could add features and fix any problems, not that it had any. At the end I went with MyMedia and it works very well. Memory footprint starts under 10MB and grows to around 15MB after running for a while. The server is responsive and supports multiple Roku units.

In the user interface department Roku2 wins with the large margin. User interface is fast, responsive and intuitive. WD TV is very far behind. You can tell that this product was done by the company with no experience in user interfaces. UI is sluggish, progress indicators are absent in the few notable places. You think that box is hung but after a few long seconds it comes alive and does its thing. The WD TV is never actually hung but I thought several times that it did.

WiFi performance is much better on Roku2. When away from the router WD TV had trouble with the streaming and video would often freeze. Roku never had any problems.

So over all my preference is Roku2. The only area that falls short is a media format support. Given fast computer and handbrake it is not a huge problem. On my quad core AMD Phenom PC 1 hour SD movie is transcoded in about 6-7 minutes. This machine is about half speed of modern i5 or i7 machine.

WD TV power consumption about twice that of Roku2. Not that it matters much since both boxes consume under 10W. Roku2 consumes under 3W when running and less than 2W when screen saver is running. KillaWatt could not detect any energy being used by Roku2.

The only area WD TV box is better than Roku2 is the media format support. If you are not willing to transcode your media but instead willing to live with clunky and slow interface, WD TV is your box. If you want many free and good internet channels, willing to transcode and like good interface experience, go with Roku2.

Costo bundle of Roku2 XS contains 2 months of Hulu and a HDMI cable. Given that the price of the bundle is lower than just a Roku box elsewhere, it is a very good deal. Do not forget a complete Angry Birds game which comes with this Roku box.

WD TV Live went back to the store and I bought a new Roku2 unit at Costco. This unit does not have the problem with the locking up remote and I am very happy with it.