Difference between revisions of "Omxplayer"
(Initial page of omxplayer) |
(→KEY BINDINGS) |
||
(19 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
− | Omxplayer is a video player specifically made for the Raspberry | + | [[Category:RaspberryPi]] |
− | See | + | |
+ | [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. | ||
+ | |||
+ | 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 === | ||
+ | If you get a black screen on your X11 desktop after Omxplayer is finished, you can use this command to restore your view: | ||
+ | <pre> | ||
+ | xrefresh -display :0 | ||
+ | </pre> | ||
+ | Or you can use a small Bash script for video playback to do this every time: | ||
+ | <pre> | ||
+ | #/bin/bash | ||
+ | omxplayer "$@" | ||
+ | xrefresh -display :0 | ||
+ | </pre> | ||
+ | On Raspbian, xrefresh is part of the x11-xserver-utils package | ||
+ | (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 | + | 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 12: | Line 157: | ||
# usermod -aGvideo USERNAME | # usermod -aGvideo USERNAME | ||
</pre> | </pre> | ||
− | Reboot the Raspberry and you should be able to run | + | 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 | + | 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=== | ||
+ | * [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://omxplayer.sconde.net/ Omxplayer Build Bot] (up to date binary packages available here) | ||
+ | |||
+ | ==References== | ||
+ | <references/> |
Latest revision as of 10: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.
Contents
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
- Successful Raspberry Pi 1080p blog, Start->Finish
- How to install Debian Raspberry Pi
- Omxplayer Build Bot (up to date binary packages available here)