
Encontré un error con omxplayer que generalmente es unerror de ffmpeg
Cuando ejecuto el comando omxplayer -info movie.mkv
me sale el siguiente error:
[matroska,webm @ 0xbc9450] max_analyze_duration 0 reached at 0 microseconds
Aborted
Por lo general, max_analyze_duration es mucho mayor, como 5004000, ¿qué significa esto y cómo debo depurarlo? A continuación he incluido el resultado de ldd omxplayer
. Además, tenga en cuenta que tengo omxplayer compilado de forma cruzada en mi máquina 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)
EDITAR:
¿Qué es exactamente ffmpeg? Lo pregunto porque cuando compilo omxplayer, obtengo dos versiones de ffmpeg, una llamada ffmpeg, la otra ffmpeg_compiled, y solo ffmpeg tiene las bibliotecas (es decir, libavutil.so, libavcodec.so...). Ahora, después de transferir el script de shell omxplayer y el binario omxplayer.bin (que cambiaré el nombre aquí a omxplayer-cross-compiled), al observar el resultado de ldd omxplayer-cross-compiled.bin
puedo ver que faltan algunas bibliotecas, así que también las copio en raspi. y guárdelos en el directorio /lib/arm-linux-gnueabihf/. Lo que me lleva de nuevo a mi pregunta original, porque en realidad nunca copié un programa binario llamado ffmpeg, entonces, ¿qué es ffmpeg? ¿Algo va mal durante mi proceso de compilación y no genera ffmpeg para mí?
EDITAR:
Aquí está el resultado de ffmpeg -i clip.mp4
. Debería haber mencionado que tengo dos versiones de omxplayer, la original que funciona y la que compilé de forma cruzada (omxplayer-cross-compiled) que da este comportamiento extraño.
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
Respuesta1
Me siento realmente estúpido (me sentiré aún más estúpido si no soluciono el problema, y simplemente me siento estúpido porquepensarSolucioné el problema) pero creo que lo que pasó es que pensé que se podía cambiar el nombre omxplayer
a cualquier otra cosa, como omxplayer-cross-compiled
. Mi intención original era no sobrescribir omxplayer si el compilado cruzado no funcionaba. Sin embargo, accidentalmente (y afortunadamente) sobrescribí omxplayer con mi versión compilada cruzada y resulta que el nombre del programa es importante. Sin embargo, todavía no puedo quitarme la sensación de que Linux me está molestando. Esto es exactamente lo que Ubuntu quiere que piense, que todo está bien, entonces BAM, vuelvo del gimnasio y de repente el programa no funciona...