Menu

web_video_streaming  Edit

Video Streaming

  • This is a summary of kmttg web server Video Streaming page.

NOTE: The list of TiVos presented in this page is not restricted to Series 4 or later as with other pages.

NOTE 2: Since the output format is HLS, this will only work for web browsers supporting HLS format. Currently this means Safari browser, iOS Safari browser, and Android 4.x or later Chrome browser. Other browsers such as Internet Explorer, Firefox, or any other that doesn't support HLS will not work.

NOTE 3: The output HLS files generated are saved to <kmttg install dir>/web/cache directory, so you should make sure if using this functionality that you install kmttg in a location that has plenty of available disk space to save video files. There is no option to change this location since it needs to be under kmttg installation directory where the web browser has access to.

MAC OS NOTE

The ffmpeg binary for Mac OS distributed with kmttg is too old and cannot handle HLS encoding, so to get Web Streaming functionality working you must first install a recent version of ffmpeg and configure kmttg to use it.

Bit rate

  • This is an important setting that determines the approximate target output bit rate of the HLS encode. If you have low network bandwidth available for the device you are using then you should set the bit rate lower at the expense of video quality. If you are seeing a lot of video freezing or long delays in starting video playback that is an indication that network bandwidth is low and you should reduce the bit rate to compensate.
  • In general if you are using this capability on your home network you can have this setting higher, but if you are trying to stream via internet you will likely have to set this lower.

My Shows...

  • Select desired TiVo and click on the My Shows... button to start a kmttg job to collect show information from the TiVo. Note that a maximum of 50 shows are retrieved at a time, so if you have many shows it will take several queries for the table to be fully populated. The table is updated after each query to present the shows obtained so far.
  • The SHOW column lists the show name for each row with option to [transcode & play] or [transcode]. Note that both options start transcoding to HLS, the only difference being the former will give you a link to start playback right away once available. Note that "transcode" is a transcode to HLS whose output goes to the kmttg web server cache directory, and what is happening is as follows:
    • A download of the show is initiated from the TiVo to the machine running kmttg.
    • The download is decrypted on the fly using tivodecode.
    • The tivodecode output is encoded to HLS on the fly using ffmpeg. Note that the ffmpeg HLS profile used is intended to be fairly low bandwidth and sufficiently easy task such that the encoding happens faster than real time assuming the machine running kmttg is powerful enough for the task.
  • It will take several seconds before the video is available to play if everything goes well.
  • With current implementation, while the transcode is happening you will be unable to use FF or jump randomly anywhere in the video stream. You should be able to REW however. If you let the transcode complete it will be fully saved in the cache directory, and then you can initiate playback of cached version and will have full normal playback capabilities. (See the Get Cached... section below).
  • You can check on progress of the transcode using Get Cached... or Show Running buttons.
  • NOTE: You can click on the green plus button to the left of the SHOW column to expose hidden show information about the show in that row in JSON syntax.

Browse Files...

  • This is used to build a list of video files in video share locations.
  • You can specify which video shares are included here in kmttg config->Web tab. Note that if you change video shares in the config page you must re-start kmttg for the web server to pick up the changes that were made.
  • If you don't specify any custom shares then kmttg will use TiVo output dir, mpg output dir and encode output dir.
  • Once the list of video files is collected they will be presented in a table and you can use the links to start transcoding the respective video just as with the My Shows capability above.

Get Cached...

  • Pressing this button will list all shows that are currently available in the web server cache directory.
  • For jobs that are still running the percent completion is indicated.
  • For completed jobs the total time in hours and minutes is displayed to the left of the file or show name.
  • You can initiate playback by clicking on the [play] link. Playing fully cached files gives you full trick play functionality. Playing currently processing files you cannot FF and won't have random access to anywhere in the stream, but you should be able to REW.
  • Each row also has a [remove] link which can be used to remove an entry from cache area.
  • The last row as a [remove all] link which can be used to clear out all shows from the cache area.
  • Note that if there are jobs running this table will automatically refresh every few seconds to update the percent complete of running jobs.

JOBS: Show Running

  • Clicking on this button will give you a list of currently running transcode jobs. You can use the [kill] link to kill individual running jobs.
  • NOTE: You should avoid running multiple jobs at once since you may overload the server.
  • Note that if there are jobs running this table will automatically refresh every few seconds to update the percent complete of running jobs.

JOBS: Kill All

  • Clicking on this button will kill any/all running transcode jobs. An alert window comes up telling you how many jobs were killed after pressing this button.
  • On the top right there is a search field where you can type in keyword to search for and filter entries in the table to match. This makes it very easy to find something specific you may be looking for in a large list of entries.

Saving video files for offline viewing

At least for iOS there are apps that let you save videos locally to your device. One example is Video Downloader from Appsneon. There are likely others and some for Android platform as well. With the appropriate app connect to kmttg web server and use Get Cached button to get list of cached videos. Then from the [transcode & play] link you can save the video locally to your device.


Related

Wiki: Home