Autor
|
Tema: Diseño de un cliente Streaming - Python (Leído 7,793 veces)
|
kamaxito
Desconectado
Mensajes: 2
|
Buenas!! Soy nuevo en esto de la programación y más aún en Python, puesto que es mi primer "programa". Tengo que realizar lo siguiente: Diseño de un cliente de streaming (primera versión del nodo fuente). Una vez que disponemos de un stream continuo de audio y/o vídeo construiremos una aplicación cliente que se conecte con el servidor de streaming instalado en el hito anterior y descarge una copia del stream. Por tanto, hay que construir una aplicación que a partir de la dirección IP del host y el puerto donde Icecast está escuchando, realice una petición en regla. La respuesta por parte de Icecast a dicha petición es lo que más adelante enviaremos a los peers. Algún manual, nociones o cualquier cosa que me sea de ayuda? Porque no se ni por dónde empezar ...
Bueno, pues por si a alguien le interesa, ésto es lo que he hecho y funciona a las mil maravillas import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("localhost", 8000)) archi = open("c:\\Users\\Kamaxito\\Desktop\\archivo.bin", "wb") s.send("GET /video HTTP/1.1\r\n\r\n") datos = s.recv(1024) while True: datos = s.recv(1024) archi.write(datos)
Elektro H@cker: Usa el botón "Insertar código"
|
|
« Última modificación: 20 Abril 2012, 22:02 pm por EleKtro H@cker »
|
En línea
|
|
|
|
kamaxito
Desconectado
Mensajes: 2
|
Buenas, pues ahora toca enviar un video a un peer que se conecte a la fuente, es decir, a un equipo que se conectará a mi servidor IceCast. La verdad, no tengo ni idea de cómo hacerlo, solo se que tengo que elegir el protocolo UDP con lo que ello conlleva ... A ver si alguien se anima y me echa una manita, y no al cuello precisamente
|
|
|
En línea
|
|
|
|
Coco88
Desconectado
Mensajes: 9
|
Hola Yo también tengo que hacer esto. ¿Podría explicarme paso a paso como has hecho esto? import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("localhost", 8000)) archi = open("c:\\Users\\Kamaxito\\Desktop\\archivo.bin", "wb") s.send("GET /video HTTP/1.1\r\n\r\n") datos = s.recv(1024) while True: datos = s.recv(1024) archi.write(datos)
Muchas gracias Elektro H@cker: Usa el botón "Insertar código"
|
|
« Última modificación: 20 Abril 2012, 22:01 pm por EleKtro H@cker »
|
En línea
|
|
|
|
Runex
Desconectado
Mensajes: 192
http://tutogramacion.blogspot.com
|
Hola Yo también tengo que hacer esto. ¿Podría explicarme paso a paso como has hecho esto? import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("localhost", 8000)) archi = open("c:\\Users\\Kamaxito\\Desktop\\archivo.bin", "wb") s.send("GET /video HTTP/1.1\r\n\r\n") datos = s.recv(1024) while True: datos = s.recv(1024) archi.write(datos)
Muchas gracias Paso a paso, te puedo explicar yo más o menos como, pero los sockets poco los he tocado en mi vida xD. En primer lugar inicia el socket, asignándolo a una variable denominada s. Luego utiliza el método connect, de socket (s.socket) paáandole como parámetro "localhost", su propio Pc vamos xD y el puerto 8000, igual que le podría haber pasado cualquier otro. Después abre un archivo en modo lectura y si no me equivoco, que lo más posible es que si, le envia una cadena de texto: s.send("GET /video HTTP/1.1\r\n\r\n"), el GET no lo había visto por Python aún, si no es en Tkinter :S. Lo último solamente inicia un bucle infinito, recibiendo datos del socket y guardando en el archivo abierto antes, lo recibido de éste. Eso es más o menos una vista así por encima, no he podido especificar más porque poco sé de sockets, mejor que te ayude el autor Un saludo
|
|
« Última modificación: 20 Abril 2012, 22:02 pm por EleKtro H@cker »
|
En línea
|
"No renunciaría al bambú. Nunca renuciaría a ti. No te compares con otros" "El me dijo: El bambú tenía un propósito diferente al del helecho, sin embargo eran necesarios y hacían del bosque un lugar hermoso".
|
|
|
Coco88
Desconectado
Mensajes: 9
|
Muchas gracias por tu respuesta. ¿Y esto como lo ejecuto en ubuntu?
|
|
|
En línea
|
|
|
|
polmadur
Desconectado
Mensajes: 47
|
¿Y esto como lo ejecuto en ubuntu?
si no recuerdo mal, para ejecutarlo simplemente debes darle permisos de ejecucion y en la terminal ejecutar el comando ./"nombre del archivoExiste otra opcion y es la de ejecutar directamente python nombre del archivo
|
|
|
En línea
|
|
|
|
Coco88
Desconectado
Mensajes: 9
|
Al ejecutarlo me da este error: AttributeError: 'module' object has no attribute 'AF_INET'
|
|
|
En línea
|
|
|
|
Coco88
Desconectado
Mensajes: 9
|
Estudio de la tasa de pérdida de bloques en tres escenarios diferentes: (1) cuando source y peer se ejecutan en la misma máquina (localhost), (2) cuando lo hacen en la misma red local (preferiblemente a través de WiFi), aunque en máquinas diferentes y finalmente, (3) cuando lo hacen en redes diferentes (por ejemplo, entre dos casas). En cada una de estas tres situaciones, conteste a las preguntas:
-¿Se desordenan en algún momento los bloques de vídeo?, es decir, ¿llegan al peer los paquetes en el mismo orden que fueron enviados?
No tiene confirmación ni control de flujo, por lo que los paquetes pueden adelantarse unos a otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmación de entrega o recepción.
-¿Se pierden paquetes? Si es así, ¿a qué crees que se debe dicha pérdida? ¿Existe alguna relación entre la tasa de pérdida de bloque de vídeo (de un determinado vídeo) y su bit-rate?
Este protocolo no está orientado a conexión y si se produce una pérdida de paquetes no se reenvian. Además la perdida de paquetes también se produce por descartes de paquetes que no llegan a tiempo al receptor.
Sin embargo la voz es bastante predictiva y si se pierden paquetes aislados se puede recomponer la voz de una manera bastante óptima. El problema es mayor cuando se producen pérdidas de paquetes en ráfagas.
Para evitar la pérdida de paquetes una técnica muy eficaz en redes con congestión o de baja velocidad es no transmitir los silencios. Gran parte de las conversaciones están llenas de momentos de silencio. Si solo transmitimos cuando haya información audible liberamos bastante los enlaces y evitamos fenómenos de congestión. De todos modos este fenómeno puede estar también bastante relacionado con el jitter y el jitter buffer.
¿Algo más que añadir??
Saludos
|
|
|
En línea
|
|
|
|
Coco88
Desconectado
Mensajes: 9
|
Hola
¿Estarían correctas las respuestas? Saludos
|
|
|
En línea
|
|
|
|
Coco88
Desconectado
Mensajes: 9
|
Hola
¿Alguien sabe como sería el código?
Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
cliente de subidas para servidor php en python
Scripting
|
orti13
|
1
|
2,662
|
5 Mayo 2009, 15:55 pm
por braulio--
|
|
|
Python en la parte cliente del navegador
Dudas Generales
|
GeorgArming
|
0
|
2,391
|
8 Marzo 2012, 21:19 pm
por GeorgArming
|
|
|
[Python] Cliente Ftp Tkinter
Scripting
|
Runex
|
4
|
4,272
|
18 Abril 2012, 14:51 pm
por Runex
|
|
|
[PYTHON] Streaming live webcam.
Scripting
|
79137913
|
4
|
4,573
|
6 Septiembre 2012, 12:36 pm
por fallout20xx
|
|
|
Analisis y diseño cliente servidor.
Programación General
|
xustyx
|
1
|
1,702
|
3 Noviembre 2014, 06:25 am
por El Benjo
|
|