Difference between revisions of "Omxplayer"

From eLinux.org
Jump to: navigation, search
m (Black Screen after playback)
(KEY BINDINGS)
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
[[Category:RaspberryPi]]
 
[[Category:RaspberryPi]]
  
[https://github.com/huceke/omxplayer Omxplayer] is a video player specifically made for the Raspberry PI's GPU made by Edgar (gimli) Hucek from the XBMC project.
+
[https://github.com/popcornmix/omxplayer Omxplayer] is a video player specifically made for the Raspberry Pi's GPU made by Edgar (gimli) Hucek from the XBMC/Kodi project. It relies on the [https://en.wikipedia.org/wiki/OpenMAX OpenMAX] hardware acceleration API, which is the [https://en.wikipedia.org/wiki/VideoCore Broadcom's VideoCore] officially supported API for GPU video/audio processing.
  
RaspberryPI forum user spenning made precompiled binaries available on the forum see [http://www.raspberrypi.org/phpBB3/viewtopic.php?f=2&t=5543 here].
+
Raspberry Pi forum user ''spenning'' made precompiled binaries available on the forum. See [http://www.raspberrypi.org/phpBB3/viewtopic.php?f=2&t=5543 here].
 +
 
 +
== KEY BINDINGS ==
 +
<pre>
 +
1          decrease speed
 +
2          increase speed
 +
<          rewind
 +
>          fast forward
 +
z          show info
 +
j          previous audio stream
 +
k          next audio stream
 +
i          previous chapter
 +
o          next chapter
 +
n          previous subtitle stream
 +
m          next subtitle stream
 +
s          toggle subtitles
 +
w          show subtitles
 +
x          hide subtitles
 +
d          decrease subtitle delay (- 250 ms)
 +
f          increase subtitle delay (+ 250 ms)
 +
q          exit omxplayer
 +
p / space  pause/resume
 +
-          decrease volume
 +
+ / =      increase volume
 +
left arrow  seek -30 seconds
 +
right arrow seek +30 seconds
 +
down arrow  seek -600 seconds
 +
up arrow    seek +600 seconds
 +
</pre>
 +
 
 +
== Usage ==
 +
 
 +
<pre>
 +
omxplayer [OPTIONS] [FILE]
 +
 
 +
-h  --help                  Print this help
 +
-v  --version              Print version info
 +
-k  --keys                  Print key bindings
 +
-n  --aidx  index          Audio stream index    : e.g. 1
 +
-o  --adev  device          Audio out device      : e.g. hdmi/local/both
 +
-i  --info                  Dump stream format and exit
 +
-I  --with-info            dump stream format before playback
 +
-s  --stats                Pts and buffer stats
 +
-p  --passthrough          Audio passthrough
 +
-d  --deinterlace          Force deinterlacing
 +
    --nodeinterlace        Force no deinterlacing
 +
    --nativedeinterlace    let display handle interlace
 +
    --anaglyph type        convert 3d to anaglyph
 +
    --advanced              Allow advanced deinterlace for HD videos
 +
-w  --hw                    Hw audio decoding
 +
-3  --3d mode              Switch tv into 3d mode (e.g. SBS/TB)
 +
-M  --allow-mvc            Allow decoding of both views of MVC stereo stream
 +
-y  --hdmiclocksync        Display refresh rate to match video (default)
 +
-z  --nohdmiclocksync      Do not adjust display refresh rate to match video
 +
-t  --sid index            Show subtitle with index
 +
-r  --refresh              Adjust framerate/resolution to video
 +
-g  --genlog                Generate log file
 +
-l  --pos n                Start position (hh:mm:ss)
 +
-b  --blank                Set background to black
 +
    --loop                  Loop file. Ignored if file not seekable
 +
    --no-boost-on-downmix  Don't boost volume when downmixing
 +
    --vol n                set initial volume in millibels (default 0)
 +
    --amp n                set initial amplification in millibels (default 0)
 +
    --no-osd                Do not display status information on screen
 +
    --no-keys              Disable keyboard input (prevents hangs for certain TTYs)
 +
    --subtitles path        External subtitles in UTF-8 srt format
 +
    --font path            Default: /usr/share/fonts/truetype/freefont/FreeSans.ttf
 +
    --italic-font path      Default: /usr/share/fonts/truetype/freefont/FreeSansOblique.ttf
 +
    --font-size size        Font size in 1/1000 screen height (default: 55)
 +
    --align left/center    Subtitle alignment (default: left)
 +
    --no-ghost-box          No semitransparent boxes behind subtitles
 +
    --lines n              Number of lines in the subtitle buffer (default: 3)
 +
    --win 'x1 y1 x2 y2'    Set position of video window
 +
    --win x1,y1,x2,y2      Set position of video window
 +
    --crop 'x1 y1 x2 y2'    Set crop area for input video
 +
    --crop x1,y1,x2,y2      Set crop area for input video
 +
    --aspect-mode type      Letterbox, fill, stretch. Default: stretch if win is specified, letterbox otherwise
 +
    --audio_fifo  n        Size of audio output fifo in seconds
 +
    --video_fifo  n        Size of video output fifo in MB
 +
    --audio_queue n        Size of audio input queue in MB
 +
    --video_queue n        Size of video input queue in MB
 +
    --threshold  n        Amount of buffered data required to finish buffering [s]
 +
    --timeout    n        Timeout for stalled file/network operations (default 10s)
 +
    --orientation n        Set orientation of video (0, 90, 180 or 270)
 +
    --fps n                Set fps of video where timestamps are not present
 +
    --live                  Set for live tv or vod type stream
 +
    --layout                Set output speaker layout (e.g. 5.1)
 +
    --dbus_name name        default: org.mpris.MediaPlayer2.omxplayer
 +
    --key-config <file>    Uses key bindings in <file> instead of the default
 +
    --alpha                Set video transparency (0..255)
 +
    --layer n              Set video render layer number (higher numbers are on top)
 +
    --display n            Set display to output to
 +
    --cookie 'cookie'      Send specified cookie as part of HTTP requests
 +
    --user-agent 'ua'      Send specified User-Agent as part of HTTP requests
 +
    --lavfdopts 'opts'      Options passed to libavformat, e.g. 'probesize:250000,...'
 +
</pre>
 +
 
 +
== Streaming ==
 +
 
 +
===RTMP===
 +
 
 +
You do not need to download an MP4 file to watch it with Omxplayer. If you have the URL of a (H.264) rtmp:// stream, just stream it with:
 +
<pre>
 +
omxplayer rtmp://...
 +
</pre>
 +
 
 +
To stream a (H.264) rtmpt://... URL with Omxplayer, just change the head rtmp:// to rtmpt://.
 +
 
 +
===RTSP===
 +
 
 +
Support for [http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol RTSP] was added in 2012<ref name="RTSP">[https://github.com/huceke/omxplayer/issues/67  Added RTSP support #67, 2012-10-20. GitHub]</ref> (for instance, allowing the use of [http://en.wikipedia.org/wiki/VLC_media_player VLC media player] as the streaming server).
 +
 
 +
Example:
 +
 
 +
<pre>
 +
omxplayer -o local rtsp://192.168.3.100:8554/stream1
 +
</pre>
 +
 
 +
==Audio==
 +
 
 +
It is possible to select the audio output by specifying -o or --adev on the command line between:
 +
* local: analog output
 +
* hdmi: hdmi output (hdmi_drive=2 is then required in config.txt)
 +
* both: both outputs
 +
 
 +
Example:
 +
<pre>
 +
omxplayer -o hdmi file.qt
 +
</pre>
  
 
== Troubleshooting ==
 
== Troubleshooting ==
 
=== Black screen after playback ===
 
=== Black screen after playback ===
If you get a black screen on your X11 Desktop after omxplayer is finished, you can use this command to restore your view:
+
If you get a black screen on your X11 desktop after Omxplayer is finished, you can use this command to restore your view:
 
<pre>
 
<pre>
 
xrefresh -display :0
 
xrefresh -display :0
 
</pre>
 
</pre>
Or you can use a small bash script for video playback to do this every time:
+
Or you can use a small Bash script for video playback to do this every time:
 
<pre>
 
<pre>
 
#/bin/bash
 
#/bin/bash
Line 17: Line 145:
 
xrefresh -display :0
 
xrefresh -display :0
 
</pre>
 
</pre>
On raspian xrefresh is part of the x11-xserver-utils package
+
On Raspbian, xrefresh is part of the x11-xserver-utils package
(apt-get install x11-xserver-utils)
+
(apt-get install x11-xserver-utils).
  
 
=== No rights to VCHIQ ===
 
=== No rights to VCHIQ ===
On bare installations of the default distributions Omxplayer often has insufficient permissions to access /dev/vchiq. One solution would be to run omxplayer as root, but a nicer solution is to add a udev rule so that /dev/vchiq is also accessible from other users. To accomplish this, do the following under root:
+
On bare installations of the default distributions, Omxplayer often has insufficient permissions to access /dev/vchiq. One solution would be to run Omxplayer as root, but a nicer solution is to add a udev rule so that /dev/vchiq is also accessible from other users. To accomplish this, do the following under root:
 
<pre>
 
<pre>
 
# echo 'SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"' > /etc/udev/rules.d/10-vchiq-permissions.rules
 
# echo 'SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"' > /etc/udev/rules.d/10-vchiq-permissions.rules
Line 29: Line 157:
 
# usermod -aGvideo USERNAME
 
# usermod -aGvideo USERNAME
 
</pre>
 
</pre>
Reboot the Raspberry and you should be able to run omxplayer without the vchiq-error showing up.
+
Reboot the Raspberry Pi, and you should be able to run Omxplayer without the vchiq-error showing up.
  
 
=== HDMI ===
 
=== HDMI ===
When using HDMI make sure to pass '-o hdmi' to omxplayer if you want the audio to playthrough the HDMI cable:
+
When using HDMI make sure to pass '-o hdmi' to Omxplayer if you want the audio to play through the HDMI cable:
 
<pre>
 
<pre>
 
omxplayer -o hdmi videofile.mp4
 
omxplayer -o hdmi videofile.mp4
 
</pre>
 
</pre>
 
  
 
===Helpful Links===
 
===Helpful Links===
 
* [http://www.brianhensley.net/2012/07/how-to-get-1080p-videos-running-on-my.html?spref=fb Successful Raspberry Pi 1080p blog, Start->Finish]
 
* [http://www.brianhensley.net/2012/07/how-to-get-1080p-videos-running-on-my.html?spref=fb Successful Raspberry Pi 1080p blog, Start->Finish]
 
* [http://www.brianhensley.net/2012/07/how-to-get-debian-working-on-my.html How to install Debian Raspberry Pi]
 
* [http://www.brianhensley.net/2012/07/how-to-get-debian-working-on-my.html How to install Debian Raspberry Pi]
* [http://omxplayer.sconde.net/ Omxplayer Build Bot]
+
* [http://omxplayer.sconde.net/ Omxplayer Build Bot] (up to date binary packages available here)
<br/>
+
 
<br/>
+
==References==
 +
<references/>

Latest revision as of 09:13, 18 February 2016


Omxplayer is a video player specifically made for the Raspberry Pi's GPU made by Edgar (gimli) Hucek from the XBMC/Kodi project. It relies on the OpenMAX hardware acceleration API, which is the Broadcom's VideoCore officially supported API for GPU video/audio processing.

Raspberry Pi forum user spenning made precompiled binaries available on the forum. See here.

KEY BINDINGS

1           decrease speed
2           increase speed
<           rewind
>           fast forward
z           show info
j           previous audio stream
k           next audio stream
i           previous chapter
o           next chapter
n           previous subtitle stream
m           next subtitle stream
s           toggle subtitles
w           show subtitles
x           hide subtitles
d           decrease subtitle delay (- 250 ms)
f           increase subtitle delay (+ 250 ms)
q           exit omxplayer
p / space   pause/resume
-           decrease volume
+ / =       increase volume
left arrow  seek -30 seconds
right arrow seek +30 seconds
down arrow  seek -600 seconds
up arrow    seek +600 seconds

Usage

omxplayer [OPTIONS] [FILE]

-h  --help                  Print this help
-v  --version               Print version info
-k  --keys                  Print key bindings
-n  --aidx  index           Audio stream index    : e.g. 1
-o  --adev  device          Audio out device      : e.g. hdmi/local/both
-i  --info                  Dump stream format and exit
-I  --with-info             dump stream format before playback
-s  --stats                 Pts and buffer stats
-p  --passthrough           Audio passthrough
-d  --deinterlace           Force deinterlacing
    --nodeinterlace         Force no deinterlacing
    --nativedeinterlace     let display handle interlace
    --anaglyph type         convert 3d to anaglyph
    --advanced              Allow advanced deinterlace for HD videos
-w  --hw                    Hw audio decoding
-3  --3d mode               Switch tv into 3d mode (e.g. SBS/TB)
-M  --allow-mvc             Allow decoding of both views of MVC stereo stream
-y  --hdmiclocksync         Display refresh rate to match video (default)
-z  --nohdmiclocksync       Do not adjust display refresh rate to match video
-t  --sid index             Show subtitle with index
-r  --refresh               Adjust framerate/resolution to video
-g  --genlog                Generate log file
-l  --pos n                 Start position (hh:mm:ss)
-b  --blank                 Set background to black
    --loop                  Loop file. Ignored if file not seekable
    --no-boost-on-downmix   Don't boost volume when downmixing
    --vol n                 set initial volume in millibels (default 0)
    --amp n                 set initial amplification in millibels (default 0)
    --no-osd                Do not display status information on screen
    --no-keys               Disable keyboard input (prevents hangs for certain TTYs)
    --subtitles path        External subtitles in UTF-8 srt format
    --font path             Default: /usr/share/fonts/truetype/freefont/FreeSans.ttf
    --italic-font path      Default: /usr/share/fonts/truetype/freefont/FreeSansOblique.ttf
    --font-size size        Font size in 1/1000 screen height (default: 55)
    --align left/center     Subtitle alignment (default: left)
    --no-ghost-box          No semitransparent boxes behind subtitles
    --lines n               Number of lines in the subtitle buffer (default: 3)
    --win 'x1 y1 x2 y2'     Set position of video window
    --win x1,y1,x2,y2       Set position of video window
    --crop 'x1 y1 x2 y2'    Set crop area for input video
    --crop x1,y1,x2,y2      Set crop area for input video
    --aspect-mode type      Letterbox, fill, stretch. Default: stretch if win is specified, letterbox otherwise
    --audio_fifo  n         Size of audio output fifo in seconds
    --video_fifo  n         Size of video output fifo in MB
    --audio_queue n         Size of audio input queue in MB
    --video_queue n         Size of video input queue in MB
    --threshold   n         Amount of buffered data required to finish buffering [s]
    --timeout     n         Timeout for stalled file/network operations (default 10s)
    --orientation n         Set orientation of video (0, 90, 180 or 270)
    --fps n                 Set fps of video where timestamps are not present
    --live                  Set for live tv or vod type stream
    --layout                Set output speaker layout (e.g. 5.1)
    --dbus_name name        default: org.mpris.MediaPlayer2.omxplayer
    --key-config <file>     Uses key bindings in <file> instead of the default
    --alpha                 Set video transparency (0..255)
    --layer n               Set video render layer number (higher numbers are on top)
    --display n             Set display to output to
    --cookie 'cookie'       Send specified cookie as part of HTTP requests
    --user-agent 'ua'       Send specified User-Agent as part of HTTP requests
    --lavfdopts 'opts'      Options passed to libavformat, e.g. 'probesize:250000,...'

Streaming

RTMP

You do not need to download an MP4 file to watch it with Omxplayer. If you have the URL of a (H.264) rtmp:// stream, just stream it with:

omxplayer rtmp://...

To stream a (H.264) rtmpt://... URL with Omxplayer, just change the head rtmp:// to rtmpt://.

RTSP

Support for RTSP was added in 2012[1] (for instance, allowing the use of VLC media player as the streaming server).

Example:

omxplayer -o local rtsp://192.168.3.100:8554/stream1

Audio

It is possible to select the audio output by specifying -o or --adev on the command line between:

  • local: analog output
  • hdmi: hdmi output (hdmi_drive=2 is then required in config.txt)
  • both: both outputs

Example:

omxplayer -o hdmi file.qt

Troubleshooting

Black screen after playback

If you get a black screen on your X11 desktop after Omxplayer is finished, you can use this command to restore your view:

xrefresh -display :0

Or you can use a small Bash script for video playback to do this every time:

#/bin/bash
omxplayer "$@"
xrefresh -display :0

On Raspbian, xrefresh is part of the x11-xserver-utils package (apt-get install x11-xserver-utils).

No rights to VCHIQ

On bare installations of the default distributions, Omxplayer often has insufficient permissions to access /dev/vchiq. One solution would be to run Omxplayer as root, but a nicer solution is to add a udev rule so that /dev/vchiq is also accessible from other users. To accomplish this, do the following under root:

# echo 'SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"' > /etc/udev/rules.d/10-vchiq-permissions.rules

Now add yourself to the group named 'video':

# usermod -aGvideo USERNAME

Reboot the Raspberry Pi, and you should be able to run Omxplayer without the vchiq-error showing up.

HDMI

When using HDMI make sure to pass '-o hdmi' to Omxplayer if you want the audio to play through the HDMI cable:

omxplayer -o hdmi videofile.mp4

Helpful Links

References