Я столкнулся с ошибкой в omxplayer, обычно это ошибка ffmpeg

Когда я запускаю команду omxplayer -info movie.mkv я получаю следующую ошибку:

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

Обычно max_analyze_duration намного выше, например, 5004000, что это значит и как мне отладить его? Ниже я включил вывод ldd omxplayer . Также обратите внимание, что я установил кросс-скомпилированный omxplayer на моей машине с Ubuntu.

/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)

РЕДАКТИРОВАТЬ:

Что именно такое ffmpeg? Я спрашиваю, потому что, когда я кросс-компилирую omxplayer, я получаю две версии ffmpeg, одну с именем ffmpeg, другую ffmpeg_compiled, и только ffmpeg имеет библиотеки (т.е. libavutil.so, libavcodec.so ...). Теперь, после передачи сценария оболочки omxplayer и двоичного файла omxplayer.bin (оба я переименую здесь в omxplayer-cross-compiled), глядя на вывод ldd omxplayer-cross-compiled.bin я вижу, что некоторые библиотеки отсутствуют, поэтому я скопируйте их и в распи и сохраните их в каталоге /lib /arm-linux-gnueabihf /. Это возвращает меня к моему первоначальному вопросу, потому что я никогда не копировал и не выполнял двоичную программу с именем ffmpeg, так что же такое ffmpeg? Что-то идет не так во время моего процесса компиляции, который не собирает ffmpeg для меня?

РЕДАКТИРОВАТЬ: Вот вывод ffmpeg -i clip.mp4 . Я должен был упомянуть, что у меня есть две версии omxplayer, оригинальная, которая работает, и та, которую я кросс-скомпилировал (omxplayer-cross-compiled), которая дает такое странное поведение.

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 DEPRECATED ***
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':
  Metadata:
    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
    Metadata:
      creation_time   : 2009-02-19 18:49:05
    Stream #0.1(eng): Audio: aac, 44100 Hz, stereo, s16, 128 kb/s
    Metadata:
      creation_time   : 2009-02-19 18:49:05
    Stream #0.2(eng): Data: mp4s / 0x7334706D, 0 kb/s
    Metadata:
      creation_time   : 2009-02-19 18:49:05
    Stream #0.3(eng): Data: mp4s / 0x7334706D, 0 kb/s
    Metadata:
      creation_time   : 2009-02-19 18:49:05
At least one output file must be specified

1 ответ1

0

Я чувствую себя действительно глупо (я буду чувствовать себя еще более глупо, если я на самом деле не решу проблему, и я просто чувствую себя глупо, потому что я думаю, что я решил проблему), но я думаю, что случилось то, что я думал, что можно просто переименовать omxplayer к чему-либо еще, например omxplayer-cross-compiled . Мое первоначальное намерение состояло в том, чтобы не переписывать omxplayer, если кросс-скомпилированный не работает. Однако я случайно - и к счастью - переписал omxplayer с моей кросс-скомпилированной версией, и оказалось, что название программы важно. Тем не менее, я до сих пор не могу избавиться от ощущения, что Linux портит мне жизнь. Это именно то, о чем Ubuntu хочет, чтобы я думал, что все хорошо, потом БАМ, я возвращаюсь из спортзала, и программа вдруг не работает ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .