elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Diseño de un cliente Streaming - Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Diseño de un cliente Streaming - Python  (Leído 7,311 veces)
kamaxito

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Diseño de un cliente Streaming - Python
« en: 8 Marzo 2012, 21:54 pm »

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 :D

Código
  1. import socket
  2.  
  3. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  4. s.connect(("localhost", 8000))
  5. archi = open("c:\\Users\\Kamaxito\\Desktop\\archivo.bin", "wb")
  6. s.send("GET /video HTTP/1.1\r\n\r\n")
  7. datos = s.recv(1024)
  8. while True:
  9.    datos = s.recv(1024)
  10.    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 Desconectado

Mensajes: 2


Ver Perfil
Re: Diseño de un cliente Streaming - Python
« Respuesta #1 en: 13 Marzo 2012, 10:31 am »

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 Desconectado

Mensajes: 9


Ver Perfil
Re: Diseño de un cliente Streaming - Python
« Respuesta #2 en: 20 Abril 2012, 21:40 pm »

Hola

Yo también tengo que hacer esto. ¿Podría explicarme paso a paso como has hecho esto?

Código
  1. import socket
  2.  
  3. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  4. s.connect(("localhost", 8000))
  5. archi = open("c:\\Users\\Kamaxito\\Desktop\\archivo.bin", "wb")
  6. s.send("GET /video HTTP/1.1\r\n\r\n")
  7. datos = s.recv(1024)
  8. while True:
  9.    datos = s.recv(1024)
  10.    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 Desconectado

Mensajes: 192


http://tutogramacion.blogspot.com


Ver Perfil WWW
Re: Diseño de un cliente Streaming - Python
« Respuesta #3 en: 20 Abril 2012, 21:55 pm »

Hola

Yo también tengo que hacer esto. ¿Podría explicarme paso a paso como has hecho esto?

Código
  1. import socket
  2.  
  3. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  4. s.connect(("localhost", 8000))
  5. archi = open("c:\\Users\\Kamaxito\\Desktop\\archivo.bin", "wb")
  6. s.send("GET /video HTTP/1.1\r\n\r\n")
  7. datos = s.recv(1024)
  8. while True:
  9.    datos = s.recv(1024)
  10.    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 Desconectado

Mensajes: 9


Ver Perfil
Re: Diseño de un cliente Streaming - Python
« Respuesta #4 en: 23 Abril 2012, 11:58 am »

Muchas gracias por tu respuesta.  :D

¿Y esto como lo ejecuto en ubuntu?
En línea

polmadur

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Diseño de un cliente Streaming - Python
« Respuesta #5 en: 23 Abril 2012, 17:33 pm »


¿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 archivo

Existe otra opcion y es la de ejecutar directamente

python nombre del archivo
En línea

Coco88

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Diseño de un cliente Streaming - Python
« Respuesta #6 en: 3 Mayo 2012, 12:43 pm »

Al ejecutarlo me da este error:  :huh:

AttributeError: 'module' object has no attribute 'AF_INET'
En línea

Coco88

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Diseño de un cliente Streaming - Python
« Respuesta #7 en: 7 Mayo 2012, 13:15 pm »


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 Desconectado

Mensajes: 9


Ver Perfil
Re: Diseño de un cliente Streaming - Python
« Respuesta #8 en: 21 Mayo 2012, 12:35 pm »

Hola

¿Estarían correctas las respuestas? Saludos
En línea

Coco88

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Diseño de un cliente Streaming - Python
« Respuesta #9 en: 28 Mayo 2012, 13:11 pm »

Hola

¿Alguien sabe como sería el código?

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
cliente de subidas para servidor php en python
Scripting
orti13 1 2,460 Último mensaje 5 Mayo 2009, 15:55 pm
por braulio--
Python en la parte cliente del navegador
Dudas Generales
GeorgArming 0 2,224 Último mensaje 8 Marzo 2012, 21:19 pm
por GeorgArming
[Python] Cliente Ftp Tkinter
Scripting
Runex 4 3,936 Último mensaje 18 Abril 2012, 14:51 pm
por Runex
[PYTHON] Streaming live webcam.
Scripting
79137913 4 4,321 Último mensaje 6 Septiembre 2012, 12:36 pm
por fallout20xx
Analisis y diseño cliente servidor.
Programación General
xustyx 1 1,524 Último mensaje 3 Noviembre 2014, 06:25 am
por El Benjo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines