Inserta video desde basa de datos

Tengo una web hecha en dreamweaver 8, Php, Mysql, la base de datos la tengo busco datos a través de código ingresado, me devuelve una página con los registros del código, encontrado en la base de datos; entre los datos también me muestra la imagen, por ejemplo imagen.jpg; hasta aquí no hay problema. Desde el juego de registros inserto los datos en la página detalle; el problema es que no se como insertar video desde la base de datos y que también aparezca en la página detalle.
¿Cómo hago el juego de registros?, ¿Cómo inserto el video?
El video se llama video. Flv
Desde Dreamweaver sin problema podría insertar el video desde insertar/Media/ Flash Video.
Pero lo que quiero es que el video se busque en la base de datos y que dinámicamente se inserte. Se puede hacer, ¿verdad?

3 respuestas

Respuesta
1
Puedes insertar el vídeo si el campo es de tipo blob. Pero no te lo recomiendo por una razón fundamental: el rendimiento de la base de datos. Si la tabla tiene muchos registros, el tamaño aumenta mucho y hace que baje el rendimiento de las búsquedas, inserciones y borrados. Aparte, si el fichero es muy largo, tendrás que ingeniártelas para traer porciones de datos e ir guardándolos al disco duro hasta componer el fichero entero, depende del buffer de MySQL
Personalmente, siempre recomiendo no utilizar campos binarios. En su lugar, es mejor que los ficheros estén en alguna carpeta del disco duro, y que el nombre de los mismos sea la clave primaria de la tabla o alguna clave única. De este modo, sólo tienes que hacer referencia a ellos desde tu aplicación web y se cargarían directamente.
Muchas gracias experto, por tan pronta respuesta; me parece muy sensata tu idea, pero por favor quisiera me aclares algunas dudas, soy nuevo en esto del diseño web con base de datos.
Especialmente en lo siguiente tengo dudas:
En su lugar, es mejor que los ficheros estén en alguna carpeta del disco duro, y que el nombre de los mismos sea la clave primaria de la tabla o alguna clave única. De este modo, sólo tienes que hacer referencia a ellos desde tu aplicación web y se cargarían directamente.
En su lugar, es mejor que los ficheros estén en alguna carpeta del disco duro : se refiere a esto que la carpeta deben estar en el servidor, ¿verdad?
Y que el nombre de los mismos sea la clave primaria de la tabla o alguna clave única : ¿Tengo qué crear tablas para cada video? Por ejemplo si un video se llama: presentación.flv tengo que crear una tabla (por ejemplo de nombre: ¿video1) con el nombre de campo video(por ejemplo) y a este campo marcarlo como clave primaria? ¿Y si son por ejemplo30 videos tengo que crear 30 tablas?.
De este modo, sólo tienes que hacer referencia a ellos desde tu aplicación web y se cargarían directamente: ¿Cómo hago rferencia desde mi web? ¿Pongo por ejemplo en una tabla video1 y a este texto creo un vinculo?, la verdad que aquí si estoy perdido.
Gracias por su tiempo.
Efectivamente, los ficheros tienen que estar en el servidor si quieres que todo el mundo los pueda ver. En lugar de crear tablas, tienes que renombrar los ficheros al nombre de la clave primaria o que el nombre del fichero contenga la clave. Por ejemplo, si en la tabla tienes un registro con la clave primaria 1, puedes nombrar: 1.flv, video1. Flv, etc.
Para crear dichos vínculos, depende del lenguaje dinámico que estés utilizando en el servidor, pero básicamente es hacer que en la página web que se genera, el nombre del vídeo sea sustituido por el campo correspondiente de la base de datos.
En función del lenguaje de servidor que estés utilizando (PHP, ASP, etc.), deberías redigir tu consulta a un experto de este área.
Muchas gracias por su respuesta, la verdad no lo tengo claro, por ejemplo mi clave primaria se llama código, ¿entonces al renombrar seria? Código. ¿flv?. El lenguaje de servidor es PHP.
Perdón seguro que la explicación es muy clara pero yo no la entiendo.
Gracias por todo.
Respuesta
1
Hay de dos sopas, la dificl o la forma fácil, la más fácil seria que si solo manejas ese formato, slo subas como archivo la servidor y solo almacenes dentro de la base de datos el nombre o dirección url donde la hubicaras,
ahora, si quieres hacerlo binario, meterlo dentro de la db y después extraerlo, te llevara más trabajo que el que esperas
Gracias por responder, ¿entonces si lo hago de la forma más fácil como pongo la dirección? La ruta donde tengo el video es: videos/almaceno/diseno-web/diseno-web2.flv
paso por 3 carpetas porque así lo tengo hasta llegar al archivo: diseño-web2.flv.
Cuando pongo la dirección asi; al cargar la página en el área donde debería salir el video me sale: videos/almaceno/diseno-web/diseno-web2.flv.
¿Qué estoy haciendo mal?
ok, te recomiendo que para reproducirlo bajes este control, es open source http://www.longtailvideo.com/players/jw-flv-player/
Este ya viene listo para flv y tiene otro para wma
Respuesta
1
Debes escribir el mismo código que te inserta Dreamweaver al insertar el video, una serie de etiquetas para dejar el objeto embebido. En PHP sólo tendrás que sustituir el nombre del video por el que diga tu base de datos, igual supongo que haces con la imagen.
En la base de datos sólo guardaría el nombre claro, guardar todo el video me parece una pérdida de eficiencia. Los videos deberían estar en un directorio y referenciarlos allí.
Hola Experto,
gracias por tu respuesta; el código que inserta dreamweaver es:
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="mso-ansi-language: EN-GB;" lang="EN-GB">[size= small]<span style="font-family: Times New Roman;">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="160" height="120" id="FLVPlayer">
[/size]</span></span>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="mso-ansi-language: EN-GB;" lang="EN-GB">[size= small]<span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">                [/size]
<param name="movie" value="FLVPlayer_Progressive.swf" /></span></span></span>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="mso-ansi-language: EN-GB;" lang="EN-GB">[size= small]<span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">                [/size]
<param name="salign" value="lt" /></span></span></span>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="mso-ansi-language: EN-GB;" lang="EN-GB">[size= small]<span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">                [/size]
<param name="quality" value="high" /></span></span></span>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="mso-ansi-language: EN-GB;" lang="EN-GB">[size= small]<span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">                [/size]
<param name="scale" value="noscale" /></span></span></span>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="mso-ansi-language: EN-GB;" lang="EN-GB">[size= small]<span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">                [/size]
<param name="FlashVars" value="&MM_ComponentVersion=1&skinName=Clear_Skin_1&streamName=videos/tipo1/subtipo1/video1&autoPlay=false&autoRewind=false" /></span></span></span>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="mso-ansi-language: EN-GB;" lang="EN-GB">[size= small]<span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">                [/size]<embed src="FLVPlayer_Progressive.swf" flashvars="&MM_ComponentVersion=1&skinName=Clear_Skin_1&streamName= videos/tipo1/subtipo1/video1&autoPlay=false&autoRewind=false" quality="high" scale="noscale" width="160" height="120" name="FLVPlayer" salign="LT" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><span style="mso-spacerun: yes;">                </span></span></span></span>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">[size= small; font-family: Times New Roman]
</object>
[/size]
Esto me trae de cabeza, también pensé en reemplazar datos pero no se como reemplazar datos desde la base de datos.
sitio = Libreria
Base de datos = Libros
Ruta donde almaceno los videos = videos/tipo1/subtipo1/video1.flv
¿Con estos datos como remplazaría datos?
Cuando inserto imagen desde la base de datos basta solo con poner en el campo el nombre de la imagen i luego en el juego de registros lo inserto en la página, posteriormente en el código html hago la modificación de ruta hacia la carpeta que contiene la imagen y listo.
Pero para el video no hay manera.
Espero me puedas decir como reemplazar datos.
Gracias por todo.
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="<a href=">
</object>
El código que muestras tiene un montón de etiquetas inútiles. Eso es debido probablemente a que has pegado algún trozo de texto desde Word o alguna otra aplicación de Office y Microsoft añade un montón de etiquetas para formatear al 'estilo de Word'. Eliminando lo que sobra queda lo siguiente:
<param name="movie" value="FLVPlayer_Progressive.swf" />
<param name="salign" value="lt" />
<param name="quality" value="high" />
<param name="scale" value="noscale" />
<param name="FlashVars" value="&MM_ComponentVersion=1&skinName=Clear_Skin_1&streamName=videos/tipo1/subtipo1/video1&autoPlay=false&autoRewind=false" />
<embed src="FLVPlayer_Progressive.swf" flashvars="&MM_ComponentVersion=1&skinName=Clear_Skin_1&streamName= videos/tipo1/subtipo1/video1&autoPlay=false&autoRewind=false" quality="high" scale="noscale" width="160" height="120" name="FLVPlayer" salign="LT" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
Si te fijas, verás dos veces el nombre de tu fichero con el path que le has dado: videos/tipo1/subtipo1/video1
Las dos ocurrencias debes cambiarlas por el nombre del video en cada caso. Fíjate que no lleva extensión y que después tiene otros parámetros.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas