huceke / omxplayer Goto Github PK
View Code? Open in Web Editor NEWomxplayer
License: GNU General Public License v2.0
omxplayer
License: GNU General Public License v2.0
There should be a command line parameter to set the default volume, I usually find anything over -6dB results in distortion so being able to set it to that volume on the command line would be really handy.
Hi all,
I would like to set video size of height and width.
(For example, i play a HD video in a omxplayer , even the resolution of video is 1920 * 1080
I can set the video run as 960 * 540 through my coding.
)
I found a function in OMXVideo named SetVideoRect(CRect)
But i call it is not any affect.
So that, my question is what should i do to resize the video ???
For some time, I have been getting
ERROR: COMXCoreComponent::DecoderEventHandler OMX.broadcom.audio_mixer - OMX_ErrorPortUnpopulated (0), cannot parse input stream
at the end of both video and audio file playback. Unfortunately I do not have the time to revert either the commits to omxplayer or my Arch system upgrades right now.
I am using the latest firmware and linux kernel and it does not seem to be Arch specific: http://www.raspberrypi.org/phpBB3/viewtopic.php?p=162817&sid=fa6c0f228110d25881d59ce403f4e09b#p162817
I'm having trouble making a test case for this because I've only seen it on HighSchoolCube's iOS streams. I'll be fiddling with it over the next week or so, but for the moment, it looks like the changing of resolution and bitrate that can come with cutting a video to an ad can result in OMXPlayer freezing up for a few seconds, playing the video at double-speed, etc.... I can't get any consistency out of it. If anyone wants to take a look at this, email me or /msg me at llrcombs on Foonetic and I'll help set up a test broadcast on HighSchoolCube with some problematic ads and other clips that can be swapped in from the web interface.
Hi,
On a Raspberry Pi you have to choose how to split your RAM.
With huge media-streams you need 128MB for vRam. If you don't know that, you will hear the sound, but you will never see a picture.
Thanks
It seems that once the whole file has ended buffering, I can no longer pause/rw/ffw/etc. A fix would be super appreciated!
Ben
we just received six raspberry pi boards with 512mb ram and plan to use them for hdmi playout. initial tests were working great with omxplayer, but we are experiencing extreme stuttering issues for every h264 file that has a bitrate over 3mbits. after digging through the web, i found that several people play 11mbit files or higher without any issues. i am wondering if overclocking of the rasp is really needed to get smooth playback or if there are any recommended encoding settings for files to play on the rasp?
our current setting:
here is one of the videos we are trying to play
http://artisticbokeh.com/videotest/miasma/teaser_temp.mp4
also, we tried with various smaller bitrates. except h.264 ecoded in vbr with 3mbits all the videos stutter.
example videos that we want to play are on video and on youtube:
http://www.youtube.com/user/artisticbokeh
http://vimeo.com/artisticbokeh
thanks for any help on how to get omxplayer to play decent video bitrates!
When compiling utils/log.cpp with GCC 4.7 and CFLAGS -g, there is an error on line 60: unable to find string literal operator 'operator"" PRIu64'
Please add spaces around PRIu64 to solve this issue.
I've just licensed the mpg decoder from the Foundation and Omxplayer is happily playing back mpegs from my USB hard drive, but I find that the up, down, left and right cursor keys are not changing the playback position.
When I use the same build (built from the GitHubs contents as of September 4th) to play back mp4s from the same hard drive, the seek keys work perfectly.
Should the mpegs be seekable or is the fact that they're being hardware decoded somehow going to prevent seeking ever taking place?
Using raspbian hard float, firmware & all OS patches up to today's date (5th September)
EDIT
Further, I now see that omxplayer.cpp only performs the seek if the video source isn't mpeg (line 666 - I couldn't number that one any better!).
Can anyone elucidate why mpegs are being expressly ignored?
EDIT
Line number now changed, but the line of code is:
if(m_incr != 0 && !m_bMpeg)
Hello,
How can I play all videos in full screen mode ?
At the moment some videos are stretched horizontally leaving top and bottom desktop visible ..
Thank you
Running 'omxplayer -r movie.mkv' seems to work as intended, but after quitting or finishing the movie I get a blank screen. The resolution does seem to return back to the original, but the screen is blank forcing a reboot. Everything still works, I just can't see what I'm doing.
--- a/omxplayer
+++ b/omxplayer
@@ -26,7 +26,7 @@ if [ -e $FBSET ]; then
fbset -xres 1 -yres 1
fi
-./omxplayer.bin "$@"
+$OMXPLAYER "$@"
if [ -e $FBSET ]; then
fbset -xres ${XRES} -yres ${YRES}
19:32:15 T:1205216352 INFO: ffmpeg[47D62460]: Duration: 00:42:01.90, start: 0.000000, bitrate: 3150 kb/s
19:32:15 T:1205216352 INFO: ffmpeg[47D62460]: Stream #0:0(eng): Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, s16, 96 kb/s
19:32:15 T:1205216352 INFO: ffmpeg[47D62460]: Stream #0:1(eng): Video: wmv3 (Main) (WMV3 / 0x33564D57), yuv420p, 1280x720, 3049 kb/s, 30 tbr, 1k tbn, 1k tbc
19:32:15 T:1205216352 NOTICE: Opening video stream: 1 source: 256
19:32:15 T:1205216352 DEBUG: OMXClock::OMXStop
19:32:15 T:1205216352 ERROR: OMXPlayerAudio : Error open video output
19:32:15 T:1205216352 DEBUG: OMXClock::OMXReset 0x00000003
19:32:15 T:1205216352 NOTICE: OMXClock using video as reference
19:32:15 T:1205216352 WARNING: OpenVideoStream - Unsupported stream 1. Stream disabled.
I'm unable to play wmv3 files with my RPi.
The wmv3 codec should be supported when the VC1 license is installed.
URLs like udp://(address):port are treated as files instead of URLs, and cannot be played.
This feature can be a lot of help for stuff like get-iplayer or livestreamer, without having to resort to scripts that have to hack around this limitation with FIFO files to get support in omxplayer.
I tried adding a special case to translate the file "-" into a streaming URL "pipe:0" in OMXReader.cpp, but while omxplayer detected the stream type and information, it quit before playing any of the stream.
wrigthrocket has a fork of the repo so it actually builds on raspbian.
see https://github.com/wrightrocket/omxplayer
please, can we merge the changes so there is a way of selecting to either build for raspbian (on the pi) or to cross-compile? i think the project would benefit a lot, since more people would be able to work on the code (especially people that only have the raspberry as development option, without any linux machine to cross-compile).
Hi,
Would like to have a feature that a video can be scaled and shown with offset. For example, a video can be scaled down to 50% and shown at the top-right hand corner of the screen. Therefore, there are spaces left at the left hand side and at the bottom for my other programs.
I have already successfully compiled omxplayer under Raspbian following the instructions provided at github. Able to modify and compile omxplayer.cpp, OMXVideo.cpp, OMXPlayerVideo.cpp and etc. However, no matter what I played with the configDisplay, hints, and a few other objects, there was still no change in the video size and offset.
Would anyone give me pointers to how and where I should modify the code?
Thanks a lot!
Kenneth
I attempted to compile newly version omxplayer
While i run the make, i got the compiler error following:
//usr//bin/g++ --sysroot=/ -isystem/include -pipe -mfloat-abi=hard -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -O3 -mstructure-size-boundary=32 -mno-sched-prolog -std=c++0x -DSTANDALONE -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -D_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST -isystem//usr/include -isystem//opt/vc/include -isystem//usr/include -isystem//opt/vc/include/interface/vcos/pthreads -isystem//usr/include/freetype2 -I./ -Ilinux -Iffmpeg_compiled/usr/local/include/ -c OMXAudio.cpp -o OMXAudio.o -Wno-deprecated-declarations
OMXAudio.cpp: In member function ?irtual bool COMXAudio::SetCurrentVolume(long int)??
OMXAudio.cpp:778:5: error: ?MX_CONFIG_BRCMAUDIODOWNMIXCOEFFICIENTS??was not declared in this scope
OMXAudio.cpp:778:45: error: expected ????before ?ix??OMXAudio.cpp:779:5: error: ?ix??was not declared in this scope
OMXAudio.cpp:789:29: error: ?MX_IndexConfigBrcmAudioDownmixCoefficients??was not declared in this scope
OMXAudio.cpp: In member function ?irtual void COMXAudio::WaitCompletion()??
OMXAudio.cpp:1185:19: warning: unused variable ?tarttime??[-Wunused-variable]
OMXAudio.cpp:1185:30: warning: unused variable ?ndtime??[-Wunused-variable]
make: *** [OMXAudio.o] Error 1
So , refer a stderr , it mean the OMC_CONFIG_BRCMAUDIODOWNMIXCOEFFICIENTS cannot found. But Why? it should default included in the raspberry?
Who can let me know where is the problem???
This sample .ape file starts to play but with poor quality and stops after a few seconds (should be about 30 but plays only about 5)
http://www.mediafire.com/?tqx2809v099e6mh
Discussed in this thread
http://forum.xbmc.org/showthread.php?tid=113824&pid=1141783#pid1141783
Hi,
I would like to use my Raspberry Pi for video survelliance. For that, I would need to show up to 4 cameras (getting video via stream from the camera) in the screen. Is there a way of showing 4 instances of omxplayer, each one with his own x and y on the screen and its own size? Can it be done? The streams are low resolution, so I think the GPU will be able to decode them in simultaneous. Please let me know if I'm asking something undoable or stupid...
Thanks in advance,
Currently the make dist command will generate a distribution file that creates a usr directory inside of the preexisting /usr directory.
--- Makefile
+++ Makefile
@@ -57,9 +57,9 @@
dist: omxplayer.bin
mkdir -p omxplayer-dist/usr/lib/omxplayer
- mkdir -p omxplayer-dist/usr/usr/bin
+ mkdir -p omxplayer-dist/usr/bin
mkdir -p omxplayer-dist/usr/share/doc
- cp omxplayer omxplayer.bin omxplayer-dist/usr/usr/bin
+ cp omxplayer omxplayer.bin omxplayer-dist/usr/bin
cp COPYING omxplayer-dist/usr/share/doc/
cp README.md omxplayer-dist/usr/share/doc/README
cp -a ffmpeg_compiled/usr/local/lib/*.so* omxplayer-dist/usr/lib/omxplayer/
I'm testing omxplayer with http live streams currently, which actually means, that http-based read-ahead is not possible. In this scenario omxplayer takes very long (~8seconds) before it detects the stream details and starts the actual playback.
Any thoughts why this takes so long? The provided content is MPEG2 in MPEG-TS container, which should be parseable in <1 second in any case.
If there is no obvious solution, I will try to debug this within the next days, as far as my time allows.
Due to the Debian changes, it no longer builds on Arch for the Raspberry. Please consider that Debian is not the only distro out there.
I am getting the following assertion error from time to time when exiting the program using the 'q' button:
omxplayer.bin: OMXCore.cpp:749: OMX_ERRORTYPE COMXCoreComponent::FreeOutputBuffers(bool): Assertion `m_omx_output_buffers.size() == m_omx_output_available.size()' failed.
After spending some time looking for a solution, I gave up and thought that it was better to let @huceke or @torarin take a look at it ;-)
On a normal exit, m_omx_output_available.size() and m_omx_output_available.size() are always 1. But once in a while m_omx_output_available.size() is 0, causing the assertion to fail (and my terminal to break for some reason).
Furthermore, the normal sequence for manipulating m_omx_output_available when quitting is
OMXCore.cpp:1436 | m_omx_output_available.push(buffer)
OMXCore:cpp:749 | assert(m_omx_output_buffers.size() == m_omx_output_available.size())
OMXCore.cpp:771 | m_omx_output_available.pop()
and when failing:
OMXCore.cpp:1436 | m_omx_output_available.push(buffer)
OMXCore.cpp:526 | m_omx_output_available.pop()
OMXCore:cpp:749 | assert(m_omx_output_buffers.size() == m_omx_output_available.size())
I believe the call to m_omx_text.GetOutputBuffer(10) from COMXVideo::GetText() is what causes the pop on OMXCore.cpp:526.
The issue is fairly easy to reproduce, seems to happen on every fifth run or so. I found a similar problem here: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=66&t=12127
I have google and looked in to it a bit. (thinking i could fix it but i have now realized there is way to much code to get my head around)
Apparently this was fixed in the alsa driver a couple of weeks ago. (so it is fixable somehow)
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=24&t=12070
Anyway:
My idea initial was to make shore the sound input never goes down. Just make shore there is "silent" data going out when there is nothing other going on.
Not shore if its a good idea.
Just throwing it out there.
The recent fix that introduced mmst: support did actually permit to play some mms urls like mmst://media.sonoma.edu/pinball.wmv or mmst://212.162.68.102/prodtvr1 (or../prodtv2 or .../prodtv3) but there are still instances in which omxplayer fails with 00:00:00 T:0 ERROR: COMXPlayer::OpenFile - avformat_open_input on urls like:
mmst://a1273.l6934729272.c69347.g.lm.akamaistream.net/D/1273/69347/v0001/reflector:29272?auth=daEaLckdIcobUbpaRdGcxakbta9cPbybUaz-bqLamp-c0-HlrxvG.
It should be noticed that above failing url runs nicely if driven by omxplayer embedded in XBMC
Nov. 17th 2012
further testing led me to find out that the url above, which was failing by mmst: , could actually work fine with mmsh:
Problem solved.
Currently when presented with a video using non-square pixel aspect ratios OMXPlayer will simply treat the video as having square pixels resulting in distorted video when playback occors. For many video types this is not an issue, but for videos coming from DVD sources where the source videos are all the same size then are distorted using non-square pixels to their intended dimensions, this is the norm.
Whenever I use the "-r" option for full screen, when I exit the video, or it ends, I just have a black screen. The only way to fix this is by typing in "sudo reboot" or pulling the plug, if I have clicked out of the terminal. I am running Raspbian on a Raspberry Pi. Not sure if the version used in Raspbian is different than the git.
Thanks
When using omxplayer in an x window system, depending on the ratio of the video, you can still see the desktop above and below the video. It would be cool if omxplayer could black out the screen so this does not happen.
Assumption: XBMC is using omxplayer to dusplay subtitles. If this is incorrect, it is XBMC issue instead.
Based on my OpenELEC and Raspbmc experience, when watching 3D Half-SBS movies, the subtitles are stretched out in width - about 1.5 ... 2x.
Height seems to be OK.
Due to wide character nature, sometimes subtitles are displayed on 4 lines, not regular 2.
Tried 1080p Half-SBS movie with .srt subtitles.
Here's my current setup.
I'm running Handbrake CLI on my PC, transcoding a file.
That file is being accessed by omxplayer through a samba share.
However, if the file is not finished transcoding, omxplayer will stop early.
For example:
If the transcode is at 50% of a 20 minute file. If I start omxplayer on that file, watch for 10 minutes,"have a nice day" will show up.
If you attempt something like this on a Desktop, with (for example VLC). VLC will complain about an incomplete file but you can click "Don't repair", and as long as the transcoding is being done faster than VLC can play the file, you will be smooth sailing as the transcoding will finish before VLC can reach that point.
Checking the log I'm getting this error.
00:00:00 T:0 DEBUG: OMXThread::Run - Exited thread with id 1151931488
00:00:00 T:0 DEBUG: OMXThread::StopThread - Thread stopped
00:00:00 T:0 DEBUG: OMXThread::Run - Exited thread with id 1161245792
00:00:00 T:0 DEBUG: OMXThread::StopThread - Thread stopped
00:00:00 T:0 ERROR: COMXCoreComponent::DecoderEventHandler OMX.broadcom.audio_mixer - OMX_ErrorPortUnpopulated (0), cannot parse input stream
This may or may not be a unique situation, so I am not sure if I should expect a fix or not. However it would be mighty nice to have this.
My explanation may be odd, I'll be happy to clarify.
Edit:
Another way to explain this:
Quick Replication
wget http://ftp.nluug.nl/ftp/graphics/blender/apricot/trailer/Sintel_Trailer1.720p.DivX_Plus_HD.mkv
50% through I run
omxplayer -o hdmi Sintel_Trailer1.720p.DivX_Plus_HD.mkv
omxplayer presents "have a nice day" at the point where wget was when I started omxplayer
Hi,
since quality of the built-in audio jack on the raspberry pi is horrible so I use a USB sound
card which works fine. But I have no sound when playing a video with omxplayer.
Is it possible to add ALSA audio output support using (using libao) ?
Cheers,
Ruben
Here's my current setup.
I'm running Handbrake CLI on my PC, transcoding a file.
That file is being accessed by omxplayer through a samba share.
However, if the file is not finished transcoding, omxplayer will stop early.
For example:
If the transcode is at 50% of a 20 minute file. If I start omxplayer on that file, watch for 10 minutes,"have a nice day" will show up.
If you attempt something like this on a Desktop, with (for example VLC). VLC will complain about an incomplete file but you can click "Don't repair", and as long as the transcoding is being done faster than VLC can play the file, you will be smooth sailing as the transcoding will finish before VLC can reach that point.
Checking the log I'm getting this error.
00:00:00 T:0 DEBUG: OMXThread::Run - Exited thread with id 1151931488
00:00:00 T:0 DEBUG: OMXThread::StopThread - Thread stopped
00:00:00 T:0 DEBUG: OMXThread::Run - Exited thread with id 1161245792
00:00:00 T:0 DEBUG: OMXThread::StopThread - Thread stopped
00:00:00 T:0 ERROR: COMXCoreComponent::DecoderEventHandler OMX.broadcom.audio_mixer - OMX_ErrorPortUnpopulated (0), cannot parse input stream
This may or may not be a unique situation, so I am not sure if I should expect a fix or not. However it would be mighty nice to have this.
My explanation may be odd, I'll be happy to clarify.
I added RTSP support to OMXReader::Open. It works fine. Allowing RTSP support enables OMXPlayer to play the streams from IP cameras. In my tests I have used Axis cameras.
The only addition to OMXReader::Open is a adding
m_filename.substr(0,7) == "rtsp://" to line 146 or 147. Please include the support for the RTSP protocol to OMXPlayer.
I would like to see a command line option to allow constant looping of a video or list of video files. I am making a player for video installations at art galleries and this feature is essential.
All I get when trying to play .ogv-files is:
file : big_buck_bunny.ogv reult 4 format ogg audio streams 1 video streams 1 chapters 0 subtitles 0
have a nice day ;)
Hi, when I trying to play an mkv it seems that the subtitles, who are whitin the mkv, are not showing. I'm using the command
~$ omxplayer random.mkv
to start the mkv, but also tried
~$ omxplayer -t y random.mkv
where y is a number, I tried from 0 to 5.
I've read at the raspberry pies official forum that I needed to press the S key to start the subtitles. It didn't work.
I really like your program, could we solve the problem please? =)
My keyboard doesn't have a numpad, and using Shift + = does not work to increase volume. Can you make both + and = increase the volume?
Playlists are cool, especially if the videos in it are played without gaps (flashes of black) in between them.
Here are some features, which potentially a lot of people will need and would come in very handy for lots of applications:
You get the picture.
These features with an HTTP interface would be so great!!!
Hi
I'm using omxplayer on my raspbian and i can't force correct fps. My Pi (mplayer) grabs rtsp stream and pipes it to a file. Omxplayer read from this file but it can not detect correct fps. Stream is 50fps h264 and mplayer detect it correctly but when i start playing it by omxplayer there is only 25 fps (default).
Is there a way to force 50fps on omxplayer ?
When playing a mkv video with embedded subtitles, these are not displayed. This appears around the beginning of the player log:
ERROR: OMXPlayerSubtitles::RenderLoop threw 13Enforce_error (Enforcement failed in SubtitleRenderer.cpp(309))
Video file linked just in case: http://www.mediafire.com/?iexe61sjtxasoux
The problem im having is a little odd! I have omxplayer running in a loop, playing video files from a folder on the raspberry, which starts at boot which displays on tv via composite. This has been working fine for over 2 weeks now without a single problem if I play avi format but if I use wmv it stops at some random place during playback.
When I check to see if omxplayer is still running, its still shows in the process list and the tv has frozen screen until I kill the process.
I get some messages in the omxplayer log which ive attached bellow.
Im using the latest version of raspbian (2012-09-18-wheezy-raspbian) all updated.
omxplayer.log
00:00:00 T:0 DEBUG: DllBcm: Using omx system library
00:00:00 T:0 DEBUG: DllOMX: Using omx system library
00:00:00 T:0 DEBUG: DllAvFormat: Using libavformat system library
00:00:00 T:0 DEBUG: DllAvUtilBase: Using libavutil system library
00:00:00 T:0 DEBUG: DllAvCodec: Using libavcodec system library
00:00:00 T:0 DEBUG: DllAvFormat: Using libavformat system library
00:00:00 T:0 DEBUG: DllOMX: Using omx system library
00:00:00 T:0 DEBUG: COMXCoreComponent::Initialize OMX.broadcom.clock input port 80 output port 81
00:00:00 T:0 DEBUG: DllAvUtilBase: Using libavutil system library
00:00:00 T:0 DEBUG: DllAvCodec: Using libavcodec system library
00:00:00 T:0 DEBUG: DllAvFormat: Using libavformat system library
00:00:00 T:0 DEBUG: DllOMX: Using omx system library
00:00:00 T:0 DEBUG: Previous line repeats 5 times.
00:00:00 T:0 DEBUG: COMXCoreComponent::Initialize OMX.broadcom.video_decode input port 130 output port 131
00:00:00 T:0 DEBUG: DllOMX: Using omx system library
00:00:00 T:0 DEBUG: COMXCoreComponent::Initialize OMX.broadcom.video_render input port 90 output port 90
00:00:00 T:0 DEBUG: DllOMX: Using omx system library
00:00:00 T:0 DEBUG: COMXCoreComponent::Initialize OMX.broadcom.video_scheduler input port 10 output port 11
00:00:00 T:0 DEBUG: DllOMX: Using omx system library
00:00:00 T:0 DEBUG: COMXCoreComponent::Initialize OMX.broadcom.text_scheduler input port 150 output port 151
00:00:00 T:0 DEBUG: COMXCoreComponent::AllocInputBuffers component(OMX.broadcom.video_decode) - port(130), nBufferCountMin(1), nBufferCountActual(60), nBufferSize(81920), nBufferAlignmen(16)
00:00:00 T:0 DEBUG: COMXCoreComponent::AllocInputBuffers component(OMX.broadcom.text_scheduler) - port(150), nBufferCountMin(1), nBufferCountActual(100), nBufferSize(1024), nBufferAlignmen(16)
00:00:00 T:0 DEBUG: COMXCoreComponent::AllocOutputBuffers component(OMX.broadcom.text_scheduler) - port(151), nBufferCountMin(1), nBufferCountActual(1), nBufferSize(1024) nBufferAlignmen(16)
00:00:00 T:0 DEBUG: COMXVideo::Open - decoder_component(0x0x17f3f40), input_port(0x82), output_port(0x83) deinterlace 0 hdmiclocksync 0
00:00:00 T:0 DEBUG: OMXThread::Create - Thread with id 1153053792 started
Can support for MMS video/audio streams be added? I want to use omxplayer for automatically receiving webcasts.
I've tried running:
omxplayer -o (hdmi | local) http://stream.url
and
omxplayer -o (hdmi | local) mms://stream.url
Neither seems to work, but both URLs work with Mplayer (not hardware accelerated)
All I get a simple 'have a nice day ;)' output log below, VC-1 is licensed and works with local files.
Log Reads:
00:00:00 T:0 DEBUG: DllBcm: Using omx system library
00:00:00 T:0 DEBUG: DllOMX: Using omx system library
00:00:00 T:0 DEBUG: DllAvFormat: Using libavformat system library
00:00:00 T:0 DEBUG: DllAvUtilBase: Using libavutil system library
00:00:00 T:0 DEBUG: DllAvCodec: Using libavcodec system library
00:00:00 T:0 DEBUG: DllAvFormat: Using libavformat system library
00:00:00 T:0 ERROR: COMXPlayer::OpenFile - avformat_open_input mms://media.sonoma.edu/pinball.wmv
Videos are not reaching the end. The log records the following message:
00:00:00 T:0 ERROR: COMXCoreComponent::DecoderEventHandler OMX.broadcom.audio_mixer - OMX_ErrorPortUnpopulated (0), cannot parse input stream
More details, including a first analysis, can be found at the forum post:
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=38&t=11817&p=128541&hilit=omxplayer#p128541
The 'bool' does allow only '0' and '1' :-) and subtitles >1 fallback to 1.
--- a/omxplayer.cpp
+++ b/omxplayer.cpp
@@ -74,7 +74,7 @@ OMXPacket *m_omx_pkt = NULL;
bool m_hdmi_clock_sync = false;
bool m_stop = false;
bool m_show_subtitle = false;
-bool m_subtitle_index = 0;
+int m_subtitle_index = 0;
DllBcmHost m_BcmHost;
OMXPlayerVideo m_player_video;
OMXPlayerAudio m_player_audio;
I would really like to get this compiled on gentoo (the portage overlay does not work). I have gotten around most issues but am stuck on this latest:
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST -isystem/var/tmp//usr/include -isystem/var/tmp//opt/vc/include -isystem/usr/arm-bcm2708-linux-gnueabi/sys-root/usr/include -isystem/var/tmp//opt/vc/include/interface/vcos/pthreads -isystem/var/tmp//usr/include/freetype2 -isystem/usr/include -isystem/opt/vc/include -isystem/opt/vc/include/interface/vcos/pthreads/ -isystem/usr/include/freetype2/ -I./ -Ilinux -Iffmpeg_compiled/usr/local/include/ -c OMXPlayerSubtitles.cpp -o OMXPlayerSubtitles.o -Wno-deprecated-declarations
In file included from OMXPlayerSubtitles.cpp:23:0:
Enforce.h:49:15: error: looser throw specifier for 'virtual const char\* Enforce_error::what() const'
/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.5.4/include/g++-v4/exception:69:25: error: overriding 'virtual const char\* std::exception::what() const throw ()'
Enforce.h:35:45: error: looser throw specifier for 'virtual Enforce_error::~Enforce_error()'
/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.5.4/include/g++-v4/exception:65:13: error: overriding 'virtual std::exception::~exception() throw ()'
make: **\* [OMXPlayerSubtitles.o] Error 1
I have not modified the Makefile at all and here is my modified Makefile.include
USE_BUILDROOT=0
FLOAT=hard
ifeq ($(USE_BUILDROOT), 1)
BUILDROOT :=/opt/xbmc-bcm/buildroot
SDKSTAGE :=$(BUILDROOT)/output/staging
TARGETFS :=$(BUILDROOT)/output/target
TOOLCHAIN :=$(BUILDROOT)/output/host/usr/
HOST :=arm-unknown-linux-gnueabi
SYSROOT :=$(BUILDROOT)/output/host/usr/arm-unknown-linux-gnueabi/sysroot
else
BUILDROOT :=/var/tmp/
SDKSTAGE :=/var/tmp/
TARGETFS :=/var/tmp/
TOOLCHAIN :=/usr
HOST :=bcm2708
SYSROOT :=$(TOOLCHAIN)/arm-bcm2708-linux-gnueabi/sys-root
endif
JOBS=7
CFLAGS := -isystem$(PREFIX)/include
CXXFLAGS := $(CFLAGS)
CPPFLAGS := $(CFLAGS)
LDFLAGS := -L$(BUILDROOT)/lib
LD := $(TOOLCHAIN)/bin/ld --sysroot=$(SYSROOT)
CC := $(TOOLCHAIN)/bin/g++ --sysroot=$(SYSROOT)
CXX := $(TOOLCHAIN)/bin/g++ --sysroot=$(SYSROOT)
OBJDUMP := $(TOOLCHAIN)/bin/objdump
RANLIB := $(TOOLCHAIN)/bin/ranlib
STRIP := $(TOOLCHAIN)/bin/strip
AR := $(TOOLCHAIN)/bin/ar
CXXCP := $(CXX) -E
PATH := $(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH)
CFLAGS += -pipe -mfloat-abi=$(FLOAT) -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -O3 -mstructure-size-boundary=32 -mno-sched-prolog
LDFLAGS += -L$(SDKSTAGE)/lib -L$(SDKSTAGE)/usr/lib -L$(SDKSTAGE)/opt/vc/lib/
INCLUDES += -isystem$(SDKSTAGE)/usr/include -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -isystem$(SDKSTAGE)/usr/include/freetype2 -isystem/usr/include -isystem/opt/vc/include -isystem/opt/vc/include/interface/vcos/pthreads/ -isystem/usr/include/freetype2/
Any help would be appreciated. I updated my GIT repository last night and did a rpi-update to ensure the latest firmware.
Thanks,
Sean
Hi:
i am use omxplayer play a HLS live stream.http://web-play.pptv.com/web-m3u8-300161.m3u8
at first the video and audio sync ok..but after 2 or more segment ts. file..the audio sound about 2 seconds after video stream...
i print the pts...it seem each 5 seconds will reset the pts...i do some sleep in OMXPlayerVideo.cpp Output
it can't work...and the audio sound unuseable..
any one can finger me out ..what's wrong..
thx very much..
My host is Ubuntu 12.04 64bit and install buildroot-rbp from https://github.com/huceke/buildroot-rbp.
But I can't build ffmpeg.
arm-unknown-linux-gnueabi-gcc is unable to create an executable file.
C compiler test failed.
If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
[email protected] mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solving the problem.
make[1]: *** [configure] 오류 1
make[1]: Leaving directory `/home/jungsubk/sandbox/omxplayer'
make: *** [ffmpeg] 오류 2
arm-unknown-linux-gnueabi-gcc -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -D_LINUX -fPIC -DPIC -D_REENTRANT -D_HAVE_SBRK -D_LARGEFILE64_SOURCE -DHAVE_CMAKE_CONFIG -DHAVE_VMCS_CONFIG -D_REENTRANT -DUSE_VCHIQ_ARM -DVCHI_BULK_ALIGN=1 -DVCHI_BULK_GRANULARITY=1 -DEGL_SERVER_DISPMANX -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__VIDEOCORE4__ -DGRAPHICS_X_VG=1 -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DOMX -DOMX_SKIP64BIT -isystem/opt/xbmc-bcm/buildroot/output/staging/staging/usr/include -isystem/opt/xbmc-bcm/buildroot/output/staging/staging/opt/vc/include -isystem/opt/xbmc-bcm/buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include -isystem/opt/xbmc-bcm/buildroot/output/staging/opt/vc/include/interface/vcos/pthreads -mfpu=vfp -mfloat-abi=softfp -mno-apcs-stack-check -mstructure-size-boundary=32 -mno-sched-prolog -mcpu=arm1176jzf-s -c -o /tmp/ffconf.sBMec3m8.o /tmp/ffconf.q9w7h6F9.c
arm-unknown-linux-gnueabi-gcc -o /tmp/ffconf.0pnUC6ve /tmp/ffconf.sBMec3m8.o
/opt/xbmc-bcm/buildroot/output/host/usr/lib/gcc/arm-unknown-linux-gnueabi/4.7.0/../../../../arm-unknown-linux-gnueabi/bin/ld: error: /tmp/ffconf.0pnUC6ve uses VFP register arguments, /tmp/ffconf.sBMec3m8.o does not
/opt/xbmc-bcm/buildroot/output/host/usr/lib/gcc/arm-unknown-linux-gnueabi/4.7.0/../../../../arm-unknown-linux-gnueabi/bin/ld: failed to merge target specific data of file /tmp/ffconf.sBMec3m8.o
collect2: error: ld returned 1 exit status
C compiler test failed.
(Cross posted from raspberry pi forums)
This one's a vanilla 1080i mpeg2/ac3 captured from one channel on my hdhomerun prime. Gives omxplayer fits, the thing plays a couple of frames, freezes for a few seconds, then a couple more frames, and so on. All the while the audio is messed up. This is the only stream on my cable lineup to have this problem - hopefully the experts will figure out why.
https://docs.google.com/open?id=0B6kbH3x-yFiiQ3NGcEpPaklUMWs
The mediainfo is:
General
ID : 0 (0x0)
Complete name : /media/MAIN/1576_20120925204200.mpg
Format : MPEG-TS
File size : 120 MiB
Duration : 1mn 4s
Overall bit rate : 15.7 Mbps
Video
ID : 6271 (0x187F)
Menu ID : 1 (0x1)
Format : MPEG Video
Format version : Version 2
Format profile : Main@High
Format settings, BVOP : Yes
Format settings, Matrix : Custom
Format settings, GOP : M=3, N=15
Codec ID : 2
Duration : 1mn 4s
Bit rate mode : Variable
Bit rate : 14.5 Mbps
Maximum bit rate : 18.0 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan order : Top Field First
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.234
Stream size : 111 MiB (92%)
Audio
ID : 6273 (0x1881)
Menu ID : 1 (0x1)
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Codec ID : 129
Duration : 1mn 4s
Bit rate mode : Constant
Bit rate : 384 Kbps
Channel(s) : 5 channels
Channel positions : Front: L C R, Side: L R
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Delay relative to video : -749ms
Stream size : 2.94 MiB (2%)
Text #1
ID : 6271 (0x187F)-608-1
Menu ID : 1 (0x1)
Format : EIA-608
Muxing mode : A/53 / DTVCC Transport
Muxing mode, more info : Muxed in Video #1
Duration : 1mn 4s
Stream size : 0.00 Byte (0%)
Text #2
ID : 6271 (0x187F)-1
Menu ID : 1 (0x1)
Format : EIA-708
Muxing mode : A/53 / DTVCC Transport
Muxing mode, more info : Muxed in Video #1
Duration : 1mn 4s
Stream size : 0.00 Byte (0%)
According to Dom, who took a look,
"I did have a look. xbmc plays it okay, so it seems to be a bug with omxplayer extracting the timestamps. Might be worth posting an issue on github."
"COMXPlayer::OpenInputStream - DVD/BD not supported"
Now that RPi released official support for MPEG2 and VC1, and given the fact that omxplayer works well with MPEG2 VOBs, it would be nice with basic DVD support. Not nessecarily full menu support, even though it would be nice. Just main feature playback of VIDEO_TS and ISO's would be a great initial step.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.