
Ich habe einen Fehler mit omxplayer festgestellt, der normalerweise einffmpeg-Fehler
Wenn ich den Befehl eingebe, omxplayer -info movie.mkv
erhalte ich die folgende Fehlermeldung:
[matroska,webm @ 0xbc9450] max_analyze_duration 0 reached at 0 microseconds
Aborted
Normalerweise ist max_analyze_duration viel höher, etwa 5004000. Was bedeutet das und wie gehe ich beim Debuggen vor? Unten habe ich die Ausgabe von eingefügt ldd omxplayer
. Beachten Sie auch, dass ich omxplayer auf meinem Ubuntu-Rechner plattformübergreifend kompiliert habe.
/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)
BEARBEITEN:
Was genau ist ffmpeg? Ich frage, weil ich beim Cross-Compilieren von omxplayer zwei Versionen von ffmpeg erhalte, eine namens ffmpeg, die andere ffmpeg_compiled, und nur ffmpeg die Bibliotheken hat (also libavutil.so, libavcodec.so...). Nachdem ich nun das omxplayer-Shell-Skript und die Binärdatei omxplayer.bin (die ich hier beide in omxplayer-cross-compiled umbenennen werde) übertragen habe, sehe ldd omxplayer-cross-compiled.bin
ich beim Betrachten der Ausgabe, dass einige Bibliotheken fehlen, also kopiere ich diese auch auf den Raspi und speichere sie im Verzeichnis /lib/arm-linux-gnueabihf/. Was mich zu meiner ursprünglichen Frage zurückbringt, denn ich habe nie ein Binärprogramm namens ffmpeg kopiert, also was ist ffmpeg? Geht während meines Kompilierungsprozesses etwas schief, wodurch ffmpeg nicht für mich erstellt wird?
BEARBEITEN:
Hier ist die Ausgabe von ffmpeg -i clip.mp4
. Ich hätte erwähnen sollen, dass ich zwei Versionen von omxplayer habe, die Originalversion, die funktioniert, und die, die ich plattformübergreifend kompiliert habe (omxplayer-plattformübergreifend kompiliert), die dieses bizarre Verhalten verursacht.
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
Antwort1
Ich fühle mich wirklich dumm (ich werde mich noch dümmer fühlen, wenn ich das Problem nicht wirklich gelöst habe, und ich fühle mich nur dumm, weil ichdenkenIch habe das Problem behoben), aber ich glaube, ich dachte, man könnte es einfach omxplayer
in irgendetwas anderes umbenennen, z. B. omxplayer-cross-compiled
. Meine ursprüngliche Absicht war, omxplayer nicht zu überschreiben, wenn sich herausstellte, dass die plattformübergreifend kompilierte Version nicht funktioniert. Allerdings habe ich omxplayer versehentlich – und glücklicherweise – mit meiner plattformübergreifend kompilierten Version überschrieben und es stellte sich heraus, dass der Name des Programms wichtig ist. Trotzdem werde ich das Gefühl nicht los, dass Linux mich verarscht. Genau das will Ubuntu mir glauben machen, dass alles in Ordnung ist, und dann BÄM, ich komme aus dem Fitnessstudio zurück und das Programm funktioniert plötzlich nicht mehr ...