I have encountered an error with omxplayer that's usually an ffmpeg error

When I issue the command omxplayer -info movie.mkv I get the following error:

[matroska,webm @ 0xbc9450] max_analyze_duration 0 reached at 0 microseconds

Usually max_analyze_duration is much higher, like 5004000, what does this mean and how should I go about debugging it? Below I have included the output of ldd omxplayer. Also, note that I have cross compiled omxplayer on my ubuntu machine.

/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0xb6f69000)                         
libWFC.so => /opt/vc/lib/libWFC.so (0xb6f31000)
libGLESv2.so => /opt/vc/lib/libGLESv2.so (0xb6f14000)
libEGL.so => /opt/vc/lib/libEGL.so (0xb6ee2000)
libbcm_host.so => /opt/vc/lib/libbcm_host.so (0xb6ec8000)
libopenmaxil.so => /opt/vc/lib/libopenmaxil.so (0xb6eba000)
libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0xb6e38000)
libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0xb6e2a000)
libvcos.so => /opt/vc/lib/libvcos.so (0xb6e18000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6df9000)
libavutil.so.52 => /lib/arm-linux-gnueabihf/libavutil.so.52 (0xb6da7000)
libavcodec.so.54 => /lib/arm-linux-gnueabihf/libavcodec.so.54 (0xb620d000)
libavformat.so.54 => /lib/arm-linux-gnueabihf/libavformat.so.54 (0xb611e000)
libavdevice.so.54 => /lib/arm-linux-gnueabihf/libavdevice.so.54 (0xb6115000)
libavfilter.so.3 => /lib/arm-linux-gnueabihf/libavfilter.so.3 (0xb60f2000)
libswscale.so.2 => /usr/lib/arm-linux-gnueabihf/libswscale.so.2 (0xb60bc000)
libswresample.so.0 => /lib/arm-linux-gnueabihf/libswresample.so.0 (0xb60a2000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb5fd5000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb5ea6000)
/lib/ld-linux-armhf.so.3 (0xb6f76000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb5e7e000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb5e72000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb5e63000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb5df2000)
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0xb5dd4000)
libbz2.so.1.0 => /lib/arm-linux-gnueabihf/libbz2.so.1.0 (0xb5dba000)
libavutil.so.51 => /usr/lib/arm-linux-gnueabihf/libavutil.so.51 (0xb5d93000)


What exactly is ffmpeg? I ask because when I cross compile omxplayer, I get two versions of ffmpeg, one called ffmpeg, the other ffmpeg_compiled, and only ffmpeg has the libraries (ie libavutil.so, libavcodec.so...). Now, after transferring the omxplayer shell script and omxplayer.bin binary (both which I shall rename here omxplayer-cross-compiled) looking at the output of ldd omxplayer-cross-compiled.bin I can see that some libraries are missing, so I copy those over to the raspi too, and store them in the /lib/arm-linux-gnueabihf/ directory. Which brings me back to my original question, because I never actually copied over and binary program called ffmpeg, so what is ffmpeg? Is something going wrong during my compilation process which isn't building ffmpeg for me?

EDIT: Here is the output of ffmpeg -i clip.mp4. I should have mentioned that I have two versions of omxplayer, the original one which works, and the one I cross compiled (omxplayer-cross-compiled) which gives this bizarre behaviour.

ffmpeg version 0.8.6-6:0.8.6-1+rpi1, Copyright (c) 2000-2013 the Libav developers
  built on Mar 31 2013 13:58:10 with gcc 4.6.3
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x195440] max_analyze_duration reached
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'media/video/clips/1.mp4':
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: isommp41avc1
    creation_time   : 2009-02-19 18:49:05
  Duration: 00:00:08.00, start: 0.000000, bitrate: 3141 kb/s
    Stream #0.0(eng): Video: h264 (Main), yuv420p, 1024x576 [PAR 1:1 DAR 16:9], 3009 kb/s, 25 fps, 25 tbr, 600 tbn
      creation_time   : 2009-02-19 18:49:05
    Stream #0.1(eng): Audio: aac, 44100 Hz, stereo, s16, 128 kb/s
      creation_time   : 2009-02-19 18:49:05
    Stream #0.2(eng): Data: mp4s / 0x7334706D, 0 kb/s
      creation_time   : 2009-02-19 18:49:05
    Stream #0.3(eng): Data: mp4s / 0x7334706D, 0 kb/s
      creation_time   : 2009-02-19 18:49:05
At least one output file must be specified
  • It could be a timestamp issue. Don't know about omxplayer. If you do a ffmpeg -i filename what is the output, especially the tbr tbn? – Rajib Dec 3 '13 at 14:12
  • @Rajib please see edit. I will try out what you suggested when I get into the office – puk Dec 3 '13 at 22:46

I feel really stupid (I'll feel even more stupid if I didn't actually fix the problem, and I am just feeling stupid because I think I fixed the problem) but I think what happened is that I thought one could just rename omxplayer to anything else, like omxplayer-cross-compiled. My original intention was to not overwrite omxplayer if the cross compiled one turned out to not work. However, I accidentally --and thankfully-- overwrote omxplayer with my cross compiled version and turns out the name of the program is important. However, I still can't shake the feeling that linux is messing with me. This is exactly what Ubuntu wants me to think, that all is well, then BAM, I come back from the gym and the program all of a sudden doesn't work...

  • Your ffmpeg is not the real ffmpeg. Its libav. I really can't say anything about omxplayer- especially if its going to require the real ffmpeg libraries. – Rajib Dec 4 '13 at 15:04
  • @Rajib I don't understand your comment or what it's in response to. Are you telling me my ffmpeg is broken? – puk Dec 4 '13 at 21:19
  • I mean you are using libav, which is not ffmpeg exactly. It is not something which has the very same response as the real ffmpeg in some cases. So you may not be using the desired program/libraries, if its the real ffmpeg you need. There are several threads on superuser and SE that deal with the issue of libav being bundled with distros and the strange warning that ffmpeg program may be deprecated. Of course ffmpeg is not deprecated. WRT your particular use case, I can't say because I don't have knowledge of omxplayer- others may be able to help. – Rajib Dec 5 '13 at 5:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.