Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Obtener datos técnicos de un archivo de video

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Obtener datos técnicos de un archivo de video Responder citando

Hola a todos, necesito saber como obtener datos técnicos de un archivo de video (ingresado mediante un OpenDialog) como ser:

*Formato/Extensión
*Codecs de video/audio
*Duración
*Nombre del archivo
*etc.

Utilizo Borland4 y quisiera saber si esto es posible de llevar a cabo en dicho compilador.

Gracias de antemano.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

amigo... estas en el lugar equivocado, deberías postear tu pregunta en Consultas. Rolling Eyes
_________________
><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

likibuay escribió:
amigo... estas en el lugar equivocado, deberías postear tu pregunta en Consultas.

Lo he movido al sitio correcto.

migue_1988 escribió:
Hola a todos, necesito saber como obtener datos técnicos de un archivo de video (ingresado mediante un OpenDialog) como ser:

Has repetido la pregunta exactamente igual, no por repetirlo más veces se va a conseguir que alguien responda. Lo mejor hubiese sido que en el mismo hilo que ya hayas abierto anteriormente añadieses más información, el mensaje sube y de paso aportas más datos.

Existen muchos contenedores y muchos formatos, si te refieres a alguno en concreto supongo que será mas fácil que alguien te ayude. Si los quieres "todos" es más fácil que vayas buscando información de cada uno de ellos en algún sitio como:

http://www.wotsit.org

Y luego una vez que empieces a hacerlo que vayas planteando las dudas que tengas.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Gracias por responder Responder citando

En realidad buscaba poder obtener datos técnicos de archivos comunes, como:
avi, mpeg, mpg, rmvb, divx...

Espero sus respuestas
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Duda Responder citando

Estuve probando obtener el nombre (sin la ruta completa) y la extensión de un archivo mediante los metodos del OpenDialog, pero no pude hacerlo.
Si son tan amables de presentar una solucion a este problema, se los agradecere.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola,

Hay una libreria que te puede ayudar. La conozco de oidas, asi que no te puedo ayudar mucho,

Es esta:
http://mediainfo.sourceforge.net/es

Por cierto es la que utiliza el emule.

Un saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Kalux, probe el MediaInfo, pero me surgio una duda:
comprendo el funcionamiento del programa y como generar un informe, pero no tengo idea de como obtener estos datos y manejarlos desde Borland.

Espero sus respuestas.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola,

Esta libreria no la he llegado a utilizar nunca. Me interese por ella por un proyecto que tengo a medias pero que por falta de tiempo se quedo en el tintero.

Asi que no puedo serte de mucha ayuda. Lo siento.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Para todos: En realidad MediaInfo no es una libreria sino mas bien un programa que al cargar un archivo multimedia, genera un informe en el formato deseado.

Pero si mi programa usa los informes del mediainfo, la maquina en la que lo instale debera tener el mediainfo tambien o no?

espero sus respuestas
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

migue_1988 escribió:
MediaInfo no es una libreria sino mas bien un programa que al cargar un archivo multimedia

En realidad es las dos cosas, tienes una versión que es un programa independiente y tienes otra versión que es una DLL que puedes usar en tus programas:

[Mirar la descarga que pone: MediaInfoLib - DLL]
http://sourceforge.net/project/showfiles.php?group_id=86862
(El archivo: MediaInfo_DLL_0.7.8_Windows_i386.zip)

Dentro del archivo comprimido viene la DLL, documentación de como usarla y varios ejemplos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

No logro hacer "funcionar" la DLL en un programa C++ Builder.

Parece que enlaza correctamente pero a la hora de llamar a cualquiera de las funciones de la DLL da error.

¿Alguien puede dar un poco de luz?
He estado mirando entre el codigo fuente que vienen junto a la libreria pero no me aclaro.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

jb_______ escribió:
Parece que enlaza correctamente pero a la hora de llamar a cualquiera de las funciones de la DLL da error.


...¿Y que error te da?

Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Basicamente que no reconoce la función llamada (al compilar el programa da error)
Es como si no estuviese bien enlazada la DLL o lo que sea.

He probado con el fichero lib que viene con la DLL y tambien generandola con implib, y no logro nada.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Bien, estos son los pasos que debes dar:

1.- Debes usar IMPLIB del builder para crear la Librería.lib de una dll.
2.- En tu proyecto tienes que añadir Libreria.lib.
3.- En tu File.cpp añades:
Código:
#pragma link "Libreria.lib"

4.- Utiliza las funciones de la dll como cualquier otra.

Existe otra forma de conseguir algo parecido. Consiste en importar las funciones una a una con las API LoadLibrary y tras definir un puntero a la función que necesitas, usar GetProcAddress para darle el valor apropiado. Mira este ejemplo de _Leo.

En todos los casos debes conocer los prototipos de las funciones para poder usarlas o importarlas, si es el caso.

Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Vale.. el problema es que usaba el *.lib y la libreria *.dll a la vez y aunque no daba error al compilar, a la hora de llamar a la funcion se volvia loco.

Ya funciona, con el fichero mediainfo.lib agregado al proyecto y con la libreria MediaInfoDLL_Static.h

Un pequeño ejemplo de uso:

---------------------


#include "MediaInfoDLL_Static.h"

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute()){
void* Handle = MediaInfo_New();

MediaInfo_Option(Handle, _T("Internet"), _T("No"));
MemoInfo->Clear();
MemoInfo->Lines->Add("Archivo: " + OpenDialog1->FileName);
MediaInfo_Open(Handle, _T(OpenDialog1->FileName.c_str()));
MemoInfo->Lines->Add(MediaInfo_Option (Handle, "Info_Version", ""));

MemoInfo->Lines->Add("Video:");
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Video, 0, _T("Codec"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Video, 0, _T("BitRate"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Video, 0, _T("Width"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Video, 0, _T("Height"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add("");
MemoInfo->Lines->Add("Audio 1:");
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Audio, 0, _T("Codec"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Audio, 0, _T("BitRate"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Audio, 0, _T("Language"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add("Audio 2:");
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Audio, 1, _T("Codec"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Audio, 1, _T("BitRate"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Audio, 0, _T("Language"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add("");
MemoInfo->Lines->Add("Subtitulos:");
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Text, 0, _T("Language"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MemoInfo->Lines->Add(MediaInfo_Get(Handle, MediaInfo_Stream_Text, 1, _T("Language"), MediaInfo_Info_Text, MediaInfo_Info_Name));
MediaInfo_Close(Handle);

};
}
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.