Helix media activity: Difference between revisions
(83 intermediate revisions by 29 users not shown) | |||
Line 1: | Line 1: | ||
{{Translations}} |
|||
=Helix "Watch & Listen" Media Activity = |
|||
{{Olpcboxtop|toptext=[[{{PAGENAME}}|Helix]]}} |
|||
{{ OBX activity |[[Image:Watch&listen.png]]|core<!--|{{{text}}}--> }} |
|||
{{ OBX source dev|projects/watch-listen}} |
|||
{{ OBX test |[[Tests/Watch_and_Listen|Watch & Listen]]}} |
|||
{{ OBX devtickets |helix-activity}} |
|||
{{ OBX pootle|1=http://dev.laptop.org/git?p=projects/watch-listen;a=blob;f=po/Watch%20%26%20Listen.pot;hb=master|2=xocore}} |
|||
{{ OBX mimetypes |application|ogg|audio|ogg|video|ogg|audio|x-wav|audio|x-vorbis+ogg|audio|x-flac+ogg|audio|x-speex+ogg|video|x-theora+ogg|video|x-ogm+ogg|image|gif|image|jpeg|image|png|audio|AMR|application|ram|video|3gpp|audio|mpeg|video|mpeg|audio|mp4|audio|x-adpcm|audio|vnd.rn-realaudio|video|vnd.rn-realvideo|application|vnd.rn-realmedia|audio|vnd.rn-realvideo|image|vnd.rn-realpix|text|vnd.rn-realtext|application|smil|image|vnd.wap.wbmp |
|||
| }} |
|||
{{ OBX xobundle |http://dev.laptop.org/~krenesky/watch-listen-14.xo|watch-listen-14}} |
|||
{{ OBX xobundle |http://dev.laptop.org/~krenesky/watch-listen-realmedia-14.xo|watch-listen-realmedia-14}} |
|||
{{ OBX team |[[User:kreneskyp|Peter Krenesky]], Josh Schonstal, [[User:jirwin|Justin Gallardo]], Brad Morgan}} |
|||
<small>see more [[:Category:OBX templates|templates]] or [[OBX proposals|propose new]]</small> |
|||
This activity should still be considered ALPHA. |
|||
{{Olpcboxbottom}} |
|||
__TOC__ |
|||
These notes relate to the "Watch & Listen-1.xo" release |
|||
of the activity. Currently, the activity is bundled with the |
|||
Helix media engine all in one package for easy installation. |
|||
Eventually this engine, and the python bindings providing |
|||
access to it will be moved to a location allowing any activity |
|||
to easily use the media engine. |
|||
{{Users}} |
|||
==Helix "Watch & Listen" Media Activity Version 1 Installation Notes== |
|||
=Description & Goals= |
|||
== Summary == |
|||
* Download the activity (see the [http://dev.laptop.org/ticket/1205 ticket] for instructions). Then just unzip the activity in /home/olpc/Activities. Restart Sugar. |
|||
* Play the OLPC test clip via the open location button (see below): |
|||
Watch & Listen is a media player based on the Helix Media Engine. The Helix engine uses a plugin system to provide compatibility with a wide array of formats. By default Watch & Listen will ship with only free codecs, separate bundles are available for non-free codecs. |
|||
** rtsp://judas.osuosl.org/olpc.smil |
|||
Currently, the activity is bundled with the |
|||
'''Helix''' media engine all in one package for easy installation. |
|||
Eventually this engine, and the [[python]] bindings providing |
|||
access to it will be moved to a location allowing any [[activity]] |
|||
to easily use the media engine. |
|||
== Goals == |
|||
Give children access to multimedia content |
|||
Here are some other links you can try: |
|||
== Licensing & Versions == |
|||
* rtsp://judas.osuosl.org/SesameFull.rv |
|||
This activity uses the Helix Media Engine. The Helix was formally known as RealPlayer until they released the code under the GPL and RPSL. All core parts of the Helix engine related to playback are released under the GPL and can be used royalty free. Most codecs are also released under the GPL. However, not all codecs are royalty free. RealNetworks has waived royalty fees for RealMedia codecs when used on the XO. |
|||
* rtsp://judas.osuosl.org/testMusic.mp3 |
|||
* rtsp://judas.osuosl.org/SesameStreet_21.rv |
|||
The default bundle will only include only Free codecs. For ease of use, bundles containing non-free codecs are available. |
|||
We will be adding more content as it becomes available (email me, gwright at helixcommunity.org with suggestions) |
|||
{| class="wikitable" |
|||
You can also try them via HTTP (but please see the bug list below, HTTP has know problems right now). You can also wget them and play them locally. |
|||
|- |
|||
|'''Name''' |
|||
|'''Description''' |
|||
|'''Current Bundle''' |
|||
|- |
|||
| '''Free''' |
|||
| Only free codecs |
|||
| [http://dev.laptop.org/~krenesky/watch-listen-14.xo watch-listen-14.xo] |
|||
|- |
|||
| '''RealMedia''' |
|||
| Free codecs plus RealMedia codecs. |
|||
| [http://dev.laptop.org/~krenesky/watch-listen-realmedia-14.xo watch-listen-realmedia-14.xo] |
|||
|- |
|||
| '''NonFree''' |
|||
| All codecs that can be distributed by RealNetworks without royalty |
|||
| '''watch-listen-nonfree-14.xo''' <br/>currently, individual plugins must be downloaded from [http://HelixCommunity.org HelixCommunity.org] |
|||
|} |
|||
== |
== Supported Media Formats == |
||
Watch & Listen can play any format that has a [[Helix Plugins|Helix Plugin]]. Not all plugins are GPL and patent free. By default only the free codecs will be shipped. Packages including non-free codecs will also be available. |
|||
Please refer to this screen grab of the activity running: |
|||
=== Free Codecs === |
|||
[http://olpc-player.helixcommunity.org/images/fullScreenShot.png https://olpc-player.helixcommunity.org/images/thumbScreenShot.png] |
|||
All of these codecs are completely open source and patent free. |
|||
* '''Ogg Vorbis and Ogg Theora''' |
|||
Starting at the upper left and going right you have the following |
|||
* Uncompressed PCM from .wav, avi, .aiff or .au files and standard RTP streams |
|||
buttons and functions: |
|||
* PCM a-law and u-law from .wav, avi or .au files and standard RTP streams |
|||
* '''SMIL 1.0/2.0''' multimedia |
|||
* Still images (JPEG, GIF, PNG, WBMP) |
|||
* Text - plain from .txt files |
|||
=== RealMedia Codecs === |
|||
* Back button, this seeks the clip back 1/20 of its duration. |
|||
RealNetworks has waived royalty fees for RealMedia codecs when used on the XO. |
|||
* Play/pause button. |
|||
* Stop button. |
|||
* Forward button, this seeks the clip forward 1/20 of its duration. |
|||
* Progress bar (non-clickable, non-dragable), this shows the current time and total duration of the clip. |
|||
* Open File button. |
|||
* Open Location button, this allows you to type in streaming links. |
|||
* RealAudio/RealVideo Codecs |
|||
* '''RealAudio and RealVideo''' playback from RealMedia file format and RealMedia streams. |
|||
* '''RAM''' metafile parsing and playback |
|||
* RealEvents and RealImageMap from .rm files and RealMedia streams |
|||
* RealText from .rt files and RealText streams |
|||
=== Non-Free Codecs === |
|||
The activity has not been been through QA (so YMMV), but this version of the engine should support: |
|||
Helix Plugins are available for these formats but they have patents associated with them. These plugins may be downloaded from HelixCommunity.org |
|||
* 3GPP-Rel6 file parsing and 3GPP-Rel6 audio and video playback |
|||
* 3G2 audio depacketizers and QCelp decoder hooks |
|||
* AAC and aacPlus decoder - More info |
|||
* AAC and aacPlus playback from .3gp, .m4a, .aac or .ra files and 3GPP, ISMA or ice-cast streams |
|||
* AMR-NB and AMR-WB audio playback from .3gp and .amr files and 3GPP streams |
|||
* H.261 video from standard RTP streams |
|||
* H.263 video from .3gp files and standard RTP streams |
|||
* H.264 video from .3gp files and standard H.264 RTP streams |
|||
* I420 video rendering |
* I420 video rendering |
||
* MJPEG video playback from .avi files |
* '''MJPEG video''' playback from .avi files |
||
* MP3 audio playback from .mp3 files, standard RTP streams and shout-cast streams |
* '''MP3 audio''' playback from .mp3 files, standard RTP streams and shout-cast streams |
||
* MP3 playlist parsing and playback |
* MP3 playlist parsing and playback |
||
* Helix MP3 Decoder |
* Helix MP3 Decoder |
||
* Helix MP3 Encoder |
* Helix MP3 Encoder |
||
* MPEG1/2 file parsing |
|||
* MPEG4 audio (no video) playback from .mp4 or .3gp files and ISMA or 3GPP streams |
|||
* Ogg Vorbis and Ogg Theora (with some known problems streaming over RTSP). |
|||
* Uncompressed PCM from .wav, avi, .aiff or .au files and standard RTP streams |
|||
* PCM a-law and u-law from .wav, avi or .au files and standard RTP streams |
|||
* RAM metafile parsing and playback |
|||
* RGB video from .avi files |
* RGB video from .avi files |
||
* H.261 video from standard RTP streams |
|||
* RealAudio/RealVideo Codecs |
|||
* |
* H.263 video from .3gp files and standard RTP streams |
||
* MPEG1/2 file parsing |
|||
* RealEvents and RealImageMap from .rm files and RealMedia streams |
|||
* |
* '''MPEG4 audio''' ('''no video''') playback from .mp4 or .3gp files and ISMA or 3GPP streams |
||
* 3GPP-Rel6 file parsing and 3GPP-Rel6 audio and video playback |
|||
* 3G2 audio depacketizers and QCelp decoder hooks |
|||
* SDP file parsing |
* SDP file parsing |
||
* SMIL1.0/2.0 multimedia |
|||
* Still images (JPEG, GIF, PNG, WBMP) |
|||
* Text - plain from .txt files |
|||
* TimedText from .3gpp files |
* TimedText from .3gpp files |
||
=== Codecs That Can't Be Shipped === |
|||
==Helix "Watch & Listen" Media Activity Version 1 Bugs== |
|||
These codecs are supported by Helix engine but cannot be distributed because of the royalty costs or licensing. |
|||
* AMR-NB and AMR-WB audio playback from .3gp and .amr files and 3GPP streams |
|||
* H.264 video from .3gp files and standard H.264 RTP streams |
|||
* AAC and aacPlus decoder - More info |
|||
* '''AAC and aacPlus''' playback from .3gp, .m4a, .aac or .ra files and 3GPP, ISMA or ice-cast streams |
|||
== Collaboration == |
|||
Collaboration is not available with Watch & Listen at this time due to technical limitations. The collaboration scenario envisioned is multiple children viewing the same media in sync. The XO lacks the CPU power and bandwidth for this to be practical |
|||
= Visual Design = |
|||
=== Screenshots === |
|||
{|style="border: solid 1px gray; margin: 1em auto 1em; auto" |
|||
|- |
|||
| valign="top"| |
|||
[[Image:watch-listen-example.png|300px|thumb|center|]] |
|||
|} |
|||
== Controls == |
|||
{| class="wikitable" |
|||
|- |
|||
| '''Icon''' |
|||
| '''Name''' |
|||
| '''Description''' |
|||
| '''Keybinding''' |
|||
|- |
|||
|[[Image:watch-listen-previous.svg|55px|center|]] |
|||
|Previous |
|||
|Skips to the previous track in the playlist |
|||
|- |
|||
|[[Image:watch-listen-play.svg|55px|center|]] |
|||
|Play |
|||
|Starts playback when video is stopped or in the paused state. This button toggles with pause |
|||
|- |
|||
|[[Image:watch-listen-pause.svg|55px|center|]] |
|||
|Pause |
|||
|Pauses playback at the current position in the file. This button toggles with play. |
|||
|- |
|||
|[[Image:watch-listen-stop.svg|55px|center|]] |
|||
|Stop |
|||
|Stops playback |
|||
|- |
|||
|[[Image:watch-listen-next.svg|55px|center|]] |
|||
|Next |
|||
|Skips to the next track in the playlist |
|||
|- |
|||
|[[Image:watch-listen-norepeat.svg|55px|center|]] |
|||
|No Repeat |
|||
|Causes the media file to stop when it finishes. This button toggles with Repeat |
|||
|- |
|||
|[[Image:watch-listen-repeat.svg|55px|center|]] |
|||
|Repeat |
|||
|Causes the media file to play again after it finishes. This button toggles with No-repeat |
|||
|- |
|||
| |
|||
|Progress bar |
|||
|Shows the current time and total duration of the clip. You can also seek through a media clip by clicking and dragging. |
|||
|- |
|||
|[[Image:watch-listen-fullscreen.svg|55px|center|]] |
|||
|Full Screen |
|||
|Controls are hidden and video enlarges to full size of screen. Escape exits. |
|||
|- |
|||
|[[Image:watch-listen-native.svg|55px|center|]] |
|||
|Native Size |
|||
|Scales the video to its original size. Toggles with Fit-To-Screen |
|||
|- |
|||
|[[Image:watch-listen-fittoscreen.svg|55px|center|]] |
|||
|Fit-To-Screen |
|||
|Scales the video to the largest size that will fit within the window. Toggles with Native Size. |
|||
|- |
|||
| |
|||
|Buffering/Stats |
|||
|The text at the bottom displays buffering status, as well as title and author of the currently playing clip. |
|||
|} |
|||
=Sample Media= |
|||
* You can download a packet of videos to go along with it. If you're downloading something larger than 15MB, you should do it from the command line via wget; downloads via the browser currently go to /tmp and use up memory. Use the open location button (see below) to browse to these files. A good place to find some ogg videos to test with is wikimedia: |
|||
*:http://commons.wikimedia.org/wiki/Category:Video |
|||
= Tips and tricks = |
|||
== Running the Helix activity from the command line == |
|||
It is often useful to directly launch the media player from the command line. In particular, many programs (web browsers, file managers, etc.) can be configured to use this command for opening media files, which does not work with sugar's activities. The command line tool can also be used directly to play streaming media by passing to it the URL of the media stream. |
|||
Follow the below steps to achieve that (note that, using a three-button USB mouse, you can paste selected texts to the terminal with the middle button): |
|||
* Install the Helix media activity as described above |
|||
* Open a [[terminal activity]]. |
|||
* Execute the following command: |
|||
nano helixplay |
|||
* In the text editor window, paste the following content (using the middle-button of your USB mouse after selecting this text in the browser window): |
|||
<pre> |
|||
#!/bin/sh |
|||
# |
|||
# helixplay |
|||
# |
|||
# Runs the Watch & Listen Activity from the command line. A specified URI |
|||
# is used. The activity is run in the background. |
|||
# |
|||
# Usage: |
|||
# helixplay [URI] |
|||
# |
|||
# Example: |
|||
# helixplay http://www.radioparadise.com/musiclinks/rp_128-1.ram |
|||
# |
|||
# This script is basically a shortcut for the following command: |
|||
# SUGAR_BUNDLE_PATH=/home/olpc/Activities/Watch\ \&\ Listen.activity sugar-activity MediaPlayerActivity.MediaPlayerActivity -b org.osl.MediaPlayerActivity -a fakeactivityid -u [uri] & |
|||
SUGAR_BUNDLE_PATH=/home/olpc/Activities/Watch\ \&\ Listen.activity |
|||
_ACTIVITY=MediaPlayerActivity.MediaPlayerActivity |
|||
_BUNDLE=org.osl.MediaPlayerActivity |
|||
_ACTIVITY_ID=fakeactivityid |
|||
sugar-activity ${_ACTIVITY} -b ${_BUNDLE} -a ${_ACTIVITY_ID} -u $@ & |
|||
</pre> |
|||
: Take care not to introduce line breaks when copying. Afterwards, press CTRL+X and confirm the file safe. |
|||
* Execute the following command to make that file an executable script: |
|||
chmod 775 helixplay |
|||
This finishes the setup. You can test the activity by executing |
|||
<nowiki>./helixplay http://www.radioparadise.com/musiclinks/rp_128-1.ram</nowiki> |
|||
(or whatever radio you like). If you followed the above steps, your file <tt>helixplay</tt> now resides in our home directory (<tt>/home/olpc/</tt>). The full path is needed to launch the program from another application. |
|||
== Playing streaming media in web browsers == |
|||
After enabling the command-line execution of helix, it can also be used as a streaming media plugin in the [[Opera]] web browser, so that you can just click on stream URLs to play them, as usual. To do that, first install the Helix command-line script as described above, and install Opera as described on its [[Opera|page in this wiki]]. Once Opera has been installed, you need to configure the streaming audio player: |
|||
# Click the O in the upper-left hand corner of the screen. |
|||
# Go to Tools\Preferences\ |
|||
# Click the "Advanced" Tab |
|||
# Click "Downloads" |
|||
# Click the "Add..." button. |
|||
# Enter "<tt>audio/x-pn-realaudio</tt>" under MIME type (do not enter the quotes) |
|||
# Enter "<tt>ram,ra</tt>" under "File extension(s)" |
|||
# Click the radio button to the left of "Open with other application" |
|||
# Enter the following data in the text box beneath "Open with other application": <tt>/home/olpc/helixplay</tt> |
|||
# Click the check box next to "Pass web address directly to application". |
|||
# Click OK twice to close all dialogs |
|||
Clicking on a real media stream URL should now launch the Helix player to play it. In addition to real media streams, you can also configure further content types to be played with Helix. In general, it might often suffice to click on a new media type: Opera then asks you what to do with it and you can use similar settings above. |
|||
{{Developers}} |
|||
=Development= |
|||
==Building a bundle with custom codecs== |
|||
Helix supports a lot of formats, protocols, etc. You may want to add or remove support for some of them. |
|||
* Determine which plugins you need, not the mime-types they supply, if any |
|||
* Put plugins in watch-listen.activity/helix |
|||
* If you are adding or removing support for a format you need to update the mime-types, otherwise skip to step 6 |
|||
* open watch-listen.activity/activity/activity.info in your favorite editor |
|||
nano activity.info |
|||
* edit the mime_types property to add or remove mimes. Note this example is missing most mimes to keep this page tidy. |
|||
mime_types = application/ogg;audio/ogg;video/ogg;audio/x-vorbis+ogg;audio/x-flac+ogg;audio/x-speex+ogg; |
|||
* build the bundle |
|||
./setup.py |
|||
Here is a list of bugs and limitations of the current implementation. |
|||
* Play/Pause button. The graphic will not change between a pause and play graphics as the state of the engine chagnes. |
|||
* HTTP streaming has problems. Playing SMIL files over HTTP will result in a hard crash. You currently will not be able to play long videos over HTTP reliably. The work around is to just use RTSP instead, when possible, or wget the clip and play locally. This bug is in work and will be fixed in the next push. |
|||
* You can not click and drag or just click in the progress bar to seek a clip. |
|||
* Clips will always scale to as much screen as can be used, the engine supports arbitrary scaling and full screen but we do not yet have GUI controls for it yet. |
|||
* Green tint over controls while playing video. This is a hardware issue, as noted in the hardware release notes, and should be resolved in the next revision of the hardware. |
|||
* Some error messages are not in our localized strings resource file (they may be non-obvious) |
|||
==Feature Requests== |
|||
==Helix "Watch & Listen" Media Activity Version 1 upcoming features == |
|||
* '''Key bindings''' - require changes to the helix engine to be made upstream. |
|||
* a two second "It works" ogg recording |
|||
{{Activity page |
|||
* Full screen support and multiple scaling options |
|||
|icon=Image:Watch&listen.png |
|||
* Velocity controls (<1x speed, >1x speed (cpu limited). |
|||
|genre=Media, Audio, and Video Players |
|||
* Video color controls (sharpness, contrast, brightness, hue) |
|||
|short description=Watch & Listen is a media player based on the Helix Media Engine. The Helix engine uses a plugin system to provide compatibility with a wide array of formats. By default Watch & Listen will ship with only free codecs, separate bundles are available for non-free codecs. |
|||
* Stats about the media, when available(auther, title, album, etc.) |
|||
|contact person=User:Kreneskyp |
|||
* Meta data, display of title, author and other meta data about the clip. |
|||
|activity source=http://dev.laptop.org/git?p=projects/watch-listen |
|||
}} |
|||
{{Activity bundle |
|||
|bundle URL=http://dev.laptop.org/~krenesky/watch-listen-14.xo |
|||
|activity version=14 |
|||
}} |
|||
{{Activity bundle |
|||
|bundle URL=http://dev.laptop.org/~krenesky/watch-listen-realmedia-14.xo |
|||
|activity version=14 |
|||
}} |
Latest revision as of 11:47, 1 May 2009
see more templates or propose new |
Description & Goals
Summary
Watch & Listen is a media player based on the Helix Media Engine. The Helix engine uses a plugin system to provide compatibility with a wide array of formats. By default Watch & Listen will ship with only free codecs, separate bundles are available for non-free codecs.
Currently, the activity is bundled with the Helix media engine all in one package for easy installation. Eventually this engine, and the python bindings providing access to it will be moved to a location allowing any activity to easily use the media engine.
Goals
Give children access to multimedia content
Licensing & Versions
This activity uses the Helix Media Engine. The Helix was formally known as RealPlayer until they released the code under the GPL and RPSL. All core parts of the Helix engine related to playback are released under the GPL and can be used royalty free. Most codecs are also released under the GPL. However, not all codecs are royalty free. RealNetworks has waived royalty fees for RealMedia codecs when used on the XO.
The default bundle will only include only Free codecs. For ease of use, bundles containing non-free codecs are available.
Name | Description | Current Bundle |
Free | Only free codecs | watch-listen-14.xo |
RealMedia | Free codecs plus RealMedia codecs. | watch-listen-realmedia-14.xo |
NonFree | All codecs that can be distributed by RealNetworks without royalty | watch-listen-nonfree-14.xo currently, individual plugins must be downloaded from HelixCommunity.org |
Supported Media Formats
Watch & Listen can play any format that has a Helix Plugin. Not all plugins are GPL and patent free. By default only the free codecs will be shipped. Packages including non-free codecs will also be available.
Free Codecs
All of these codecs are completely open source and patent free.
- Ogg Vorbis and Ogg Theora
- Uncompressed PCM from .wav, avi, .aiff or .au files and standard RTP streams
- PCM a-law and u-law from .wav, avi or .au files and standard RTP streams
- SMIL 1.0/2.0 multimedia
- Still images (JPEG, GIF, PNG, WBMP)
- Text - plain from .txt files
RealMedia Codecs
RealNetworks has waived royalty fees for RealMedia codecs when used on the XO.
- RealAudio/RealVideo Codecs
- RealAudio and RealVideo playback from RealMedia file format and RealMedia streams.
- RAM metafile parsing and playback
- RealEvents and RealImageMap from .rm files and RealMedia streams
- RealText from .rt files and RealText streams
Non-Free Codecs
Helix Plugins are available for these formats but they have patents associated with them. These plugins may be downloaded from HelixCommunity.org
- I420 video rendering
- MJPEG video playback from .avi files
- MP3 audio playback from .mp3 files, standard RTP streams and shout-cast streams
- MP3 playlist parsing and playback
- Helix MP3 Decoder
- Helix MP3 Encoder
- RGB video from .avi files
- H.261 video from standard RTP streams
- H.263 video from .3gp files and standard RTP streams
- MPEG1/2 file parsing
- MPEG4 audio (no video) playback from .mp4 or .3gp files and ISMA or 3GPP streams
- 3GPP-Rel6 file parsing and 3GPP-Rel6 audio and video playback
- 3G2 audio depacketizers and QCelp decoder hooks
- SDP file parsing
- TimedText from .3gpp files
Codecs That Can't Be Shipped
These codecs are supported by Helix engine but cannot be distributed because of the royalty costs or licensing.
- AMR-NB and AMR-WB audio playback from .3gp and .amr files and 3GPP streams
- H.264 video from .3gp files and standard H.264 RTP streams
- AAC and aacPlus decoder - More info
- AAC and aacPlus playback from .3gp, .m4a, .aac or .ra files and 3GPP, ISMA or ice-cast streams
Collaboration
Collaboration is not available with Watch & Listen at this time due to technical limitations. The collaboration scenario envisioned is multiple children viewing the same media in sync. The XO lacks the CPU power and bandwidth for this to be practical
Visual Design
Screenshots
Controls
Icon | Name | Description | Keybinding |
Previous | Skips to the previous track in the playlist | ||
Play | Starts playback when video is stopped or in the paused state. This button toggles with pause | ||
Pause | Pauses playback at the current position in the file. This button toggles with play. | ||
Stop | Stops playback | ||
Next | Skips to the next track in the playlist | ||
No Repeat | Causes the media file to stop when it finishes. This button toggles with Repeat | ||
Repeat | Causes the media file to play again after it finishes. This button toggles with No-repeat | ||
Progress bar | Shows the current time and total duration of the clip. You can also seek through a media clip by clicking and dragging. | ||
Full Screen | Controls are hidden and video enlarges to full size of screen. Escape exits. | ||
Native Size | Scales the video to its original size. Toggles with Fit-To-Screen | ||
Fit-To-Screen | Scales the video to the largest size that will fit within the window. Toggles with Native Size. | ||
Buffering/Stats | The text at the bottom displays buffering status, as well as title and author of the currently playing clip. |
Sample Media
- You can download a packet of videos to go along with it. If you're downloading something larger than 15MB, you should do it from the command line via wget; downloads via the browser currently go to /tmp and use up memory. Use the open location button (see below) to browse to these files. A good place to find some ogg videos to test with is wikimedia:
Tips and tricks
Running the Helix activity from the command line
It is often useful to directly launch the media player from the command line. In particular, many programs (web browsers, file managers, etc.) can be configured to use this command for opening media files, which does not work with sugar's activities. The command line tool can also be used directly to play streaming media by passing to it the URL of the media stream.
Follow the below steps to achieve that (note that, using a three-button USB mouse, you can paste selected texts to the terminal with the middle button):
- Install the Helix media activity as described above
- Open a terminal activity.
- Execute the following command:
nano helixplay
- In the text editor window, paste the following content (using the middle-button of your USB mouse after selecting this text in the browser window):
#!/bin/sh # # helixplay # # Runs the Watch & Listen Activity from the command line. A specified URI # is used. The activity is run in the background. # # Usage: # helixplay [URI] # # Example: # helixplay http://www.radioparadise.com/musiclinks/rp_128-1.ram # # This script is basically a shortcut for the following command: # SUGAR_BUNDLE_PATH=/home/olpc/Activities/Watch\ \&\ Listen.activity sugar-activity MediaPlayerActivity.MediaPlayerActivity -b org.osl.MediaPlayerActivity -a fakeactivityid -u [uri] & SUGAR_BUNDLE_PATH=/home/olpc/Activities/Watch\ \&\ Listen.activity _ACTIVITY=MediaPlayerActivity.MediaPlayerActivity _BUNDLE=org.osl.MediaPlayerActivity _ACTIVITY_ID=fakeactivityid sugar-activity ${_ACTIVITY} -b ${_BUNDLE} -a ${_ACTIVITY_ID} -u $@ &
- Take care not to introduce line breaks when copying. Afterwards, press CTRL+X and confirm the file safe.
- Execute the following command to make that file an executable script:
chmod 775 helixplay
This finishes the setup. You can test the activity by executing
./helixplay http://www.radioparadise.com/musiclinks/rp_128-1.ram
(or whatever radio you like). If you followed the above steps, your file helixplay now resides in our home directory (/home/olpc/). The full path is needed to launch the program from another application.
Playing streaming media in web browsers
After enabling the command-line execution of helix, it can also be used as a streaming media plugin in the Opera web browser, so that you can just click on stream URLs to play them, as usual. To do that, first install the Helix command-line script as described above, and install Opera as described on its page in this wiki. Once Opera has been installed, you need to configure the streaming audio player:
- Click the O in the upper-left hand corner of the screen.
- Go to Tools\Preferences\
- Click the "Advanced" Tab
- Click "Downloads"
- Click the "Add..." button.
- Enter "audio/x-pn-realaudio" under MIME type (do not enter the quotes)
- Enter "ram,ra" under "File extension(s)"
- Click the radio button to the left of "Open with other application"
- Enter the following data in the text box beneath "Open with other application": /home/olpc/helixplay
- Click the check box next to "Pass web address directly to application".
- Click OK twice to close all dialogs
Clicking on a real media stream URL should now launch the Helix player to play it. In addition to real media streams, you can also configure further content types to be played with Helix. In general, it might often suffice to click on a new media type: Opera then asks you what to do with it and you can use similar settings above.
Development
Building a bundle with custom codecs
Helix supports a lot of formats, protocols, etc. You may want to add or remove support for some of them.
- Determine which plugins you need, not the mime-types they supply, if any
- Put plugins in watch-listen.activity/helix
- If you are adding or removing support for a format you need to update the mime-types, otherwise skip to step 6
- open watch-listen.activity/activity/activity.info in your favorite editor
nano activity.info
- edit the mime_types property to add or remove mimes. Note this example is missing most mimes to keep this page tidy.
mime_types = application/ogg;audio/ogg;video/ogg;audio/x-vorbis+ogg;audio/x-flac+ogg;audio/x-speex+ogg;
- build the bundle
./setup.py
Feature Requests
- Key bindings - require changes to the helix engine to be made upstream.
- a two second "It works" ogg recording
Activity Summary
Icon: | Sugar icon::Image:Watch&listen.png |
Genre: | Activity genre::Media, Audio, and Video Players |
Activity group: | ,|x|Activity group::x}} |
Short description: | [[Short description::Watch & Listen is a media player based on the Helix Media Engine. The Helix engine uses a plugin system to provide compatibility with a wide array of formats. By default Watch & Listen will ship with only free codecs, separate bundles are available for non-free codecs.]] |
Description: | |
Maintainers: | ,|x|Contact person::x}} |
Repository URL: | Source code::http://dev.laptop.org/git?p=projects/watch-listen |
Available languages: | ,|x|Available languages::x}} |
Available languages (codes): | ,|x|Language code::x}} |
Pootle URL: | |
Related projects: | Related projects,|x|Related projects::x}} |
Contributors: | ,|x|Team member::x}} |
URL from which to download the latest .xo bundle | Activity bundle:: |
Last tested version number: | |
The releases with which this version of the activity has been tested. | ,|x|Software release::x}} |
Development status: | |
Ready for testing (development has progressed to the point where testers should try it out): | ,|x|Ready for testing::x}} |
smoke tested : | |
test plan available : | |
test plan executed : | |
developer response to testing : |
URL from which to download the last .xo bundle that works with old releases | Activity bundle::http://dev.laptop.org/~krenesky/watch-listen-14.xo |
Activity version number: | Activity version::14 |
The releases with which this version of the activity has been tested. | ,|x|Software release::x}} |
Development status: |
URL from which to download the last .xo bundle that works with old releases | Activity bundle::http://dev.laptop.org/~krenesky/watch-listen-realmedia-14.xo |
Activity version number: | Activity version::14 |
The releases with which this version of the activity has been tested. | ,|x|Software release::x}} |
Development status: |
- Translated Pages
- Activities
- Core
- XO source
- Pootle
- POT
- Mimetype application
- Mimetype ogg
- Mimetype audio
- Mimetype video
- Mimetype x-wav
- Mimetype x-vorbis+ogg
- Mimetype x-flac+ogg
- Mimetype x-speex+ogg
- Mimetype x-theora+ogg
- Mimetype x-ogm+ogg
- Mimetype image
- Mimetype gif
- Mimetype jpeg
- Mimetype png
- Mimetype AMR
- Mimetype ram
- Mimetype 3gpp
- Mimetype mpeg
- Mimetype mp4
- Mimetype x-adpcm
- Mimetype vnd.rn-realaudio
- Mimetype vnd.rn-realvideo
- Template limit reached
- Mimetype
- Activity bundle
- General Public
- Developers