Módulo de vídeo basado en VLC

Started by josebita, February 03, 2010, 07:40:39 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

Gracias :)

Me gustaría hacer que si se le da un tamaño de 0x0 se cargara el vídeo con su tamaño real pero no puedo averiguar el tamaño hasta que se ha iniciado y para eso necesito haber especificado un tamaño... Si alguien quiere echarle un ojo y averigua cómo solucionarlo, se lo agradecería.

Drumpi

Bueno, quizás se pueda crear una función en C que lea dicha info directamente del video en función de su tipo, esta info va siempre en la cabecera... pero claro, habría que hacer una lista de los formatos soportados por VLC, buscar las especificaciones de la cabecera y leer la info necesaria, pero claro, es un trabajo de chinos.

Si alguien me regala tres horas, lo hago yo :(
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

josebita

Hombre, la idea es no tener que lidiar con los formatos de vídeo. Siempre podría hacer yo eso que he dicho antes en el código C (reproducir+leer variables+volver a reproducir con el tamaño apropiado), quizás lo haga así.

Drumpi

Pues pregúntale a Super(c) cómo lo hace, porque te da una completísima información de todos los formatos que soporta, y, hasta donde se, es un programa que hace llamadas a los 4 codecs de linea de comandos que usa: ffmpeg, MEncoder, Theora y ¿mov2mpeg? Si VSE usa alguna de estas librerías, por fuerza debe venir la llamada a alguna función que de esta información, están muy extendidas, creo que deben ser GNU...
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind

Quote from: josebita on March 16, 2010, 03:16:58 PM
Ahora, cuando me ponga otra vez con la fmodex, no te apunets el tanto :P

Vas a continuar la fmodex ? La vas a compilar para Windows ?

josebita

Sí, la voy a continuar y ampliar mucho, añadiendo soporte de reconocimiento de tonos por el micrófono y quizás alguna cosilla más.
Pero no está parada, y ahora ya debería estar en algún sitio para windows.

josebita

Versión 1.1 para win32. La única mejora es que ahora ya no hace falta usar el complete_restore para poder ver los vídeos.

FreeYourMind

Te voy a dar un Karma, porque creo que nunca te he dado uno  ;D

panreyes

#53
Yo te doy otro, porque este módulo me viene de perlas para un proyectillo :)
------
Uuuhh... Aunque el zip que me bajé de mediafire me da error de CRC xD
------
Ughh... xD ¿Y el modulito ocupa 25 megas? xD
Parece mi antigua distro de Linux para ejecutar Bennu en la Wii xD

josebita

Ocupa 25MB porque he metido todos los plugins que vienen con VLC.
Del directorio de los plugins, borra todo lo que no te interese. Veraś como baja un montón de tamaño. Yo supongo que si unicamente dejas los plugins estrictamente necesarios debería ocupar como mucho 5MB.

PD: El error de CRC me lo da a mí tb. Borra todos los ficheros que van en el directorio de plugins y copia los que te interesen del último VLC. El único fichero interesante del zip es el mod_vlc.dll

panreyes

#55
Pfff... A investigar toca xD Nada, sólo tiene... 230 plugins! xD

Necesito VLC con lo mínimo para reproducir DivX...

--------
Nada, sea como sea se me hace muy grande :S
Para otros proyectos seguro que viene mucho mejor, pero yo por ahora tiraré de mod_smpeg :)

josebita

Pixel, para saber qué módulos necesitas:
Abre en el VLC de verdad el vídeo que quieras reproducir.
Vete a "Herramientas->Mensajes" (Ctrl+M)
Vete a "Árbol de Módulos"
Allí te pone todos los módulos que está usando. Hay un par de cosas que cambian porque para la salida de vídeo estoy usando libvmem_plugin.dll en lugar de libvout_directx_plugin.dll, que es la que casi seguro te pondrá que estás usando.
En pruebas con Wine, para reproducir el último capítulo de House que me he bajado, he comprobado que necesitas:

libaccess_file_plugin.dll
libaout_directx_plugin.dll
libavcodec_plugin.dll
libavformat_plugin.dll
libavi_plugin.dll
libbandlimited_resampler_plugin.dll
libconverter_float_plugin.dll
libmpeg_audio_plugin.dll
libmpgatofixed32_plugin.dll
libmux_avi_plugin.dll
libscale_plugin.dll
libscaletempo_plugin.dll
libstream_filter_record_plugin.dll
libswscale_plugin.dll
libvmem_plugin.dll

Son unos 12 MB sobre todo porque libavcodec.dll y libavformat.dll ocupan un huevo.
Si recodificas el vídeo a OGG Theora (con un bat como el que puse para la Wii) necesitas:
libaccess_file_plugin.dll
libaout_directx_plugin.dll
libogg_plugin.dll
libswscale_plugin.dll
libtheora_plugin.dll
libvmem_plugin.dll
libvorbis_plugin.dll

Que son 1.9MB. Si quieres, puedo modificarte el bat para convertir vídeo a Theora.

(En los dos casos, puede que necesites algún plugin más para el audio, ahora mismo no me está funcionando bien en Wine, pero creo que es todo).

Windgate

Arg, me separé de este hilo, disculpadme pero he estado ocupado, una sóla duda:

¿Ya se puede reproducir video de Youtube a partir de la URL?, ¿Alguien lo ha intentado?
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

josebita

#58
Perdona, wind, por haber olvidado este tema durante tanto tiempo sin contestarte. Pues la verdad es que no he probado si funciona o no, pero en principio debería funcionar, con los plugins adecuados.

Otra cosa:
He creado esta página en Google code donde iré dejando el código y sobre todo, packs con las librerías mínimas necesarias para reproducir los formatos de vídeo más comunes -WebM, Theora, H264, xvid, flv...- en windows.
De momento he subido el pack con soporte para webm basado en la VLC 1.1. No sé si funciona el audio porque wine me está fastidiando; mañana lo probaré en un windows de verdad y lo arreglaré, si hace falta.

josebita

He arreglado el pack para WebM (el audio no sonaba) y he añadido dos packs más:
- Theora+Vorbis (1.4MB comprimido).
- Dirac (1.4MB comprimido).

En próximos días subiré packs para formatos que no son libres pero son más comunes (flv, xvid...).
Como podeis ver son tan pequeñitos que deberían caber en un diskette, así que ahora no hace falta meter todas las librerías del VLC en vuestro programa.