omxplayer/ffmpeg 錯誤 max_analyze_duration 0 在 0 微秒時達到

omxplayer/ffmpeg 錯誤 max_analyze_duration 0 在 0 微秒時達到

我在 omxplayer 中遇到了一個錯誤,通常是ffmpeg 錯誤

當我發出命令時,omxplayer -info movie.mkv出現以下錯誤:

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

通常 max_analyze_duration 要高得多,例如 5004000,這是什麼意思以及我應該如何調試它?下面我包含了 的輸出ldd omxplayer。另外,請注意,我在我的 ubuntu 機器上交叉編譯了 omxplayer。

/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 shell 腳本和 omxplayer.bin 二進位(我將在此處將其重命名為 omxplayer-cross-compiled)後,查看輸出,ldd omxplayer-cross-compiled.bin我可以看到缺少一些庫,因此我也將它們複製到raspi,並將它們儲存在 /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

我覺得自己真的很蠢(如果我沒有真正解決問題,我會覺得更蠢,而且我只是覺得很蠢,因為我思考我解決了這個問題)但我認為發生的事情是我認為可以重命名omxplayer為其他任何名稱,例如omxplayer-cross-compiled.我的初衷是,如果交叉編譯的結果不起作用,就不覆蓋 omxplayer。然而,幸運的是,我意外地用我的交叉編譯版本覆蓋了 omxplayer,結果發現程式的名稱很重要。然而,我還是無法擺脫linux在搞亂我的感覺。這正是 Ubuntu 希望我想到的,一切都很好,然後砰的一聲,我從健身房回來,程序突然不起作用了…

相關內容