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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / Conversión .sec a .py para tabla PAT en: 19 Agosto 2015, 21:12 pm
Saludos.

En Televisión Digital se utilizan unas tablas para la señalización. Estas tablas se escriben en archivos .py que luego se convierten a .sec y finalmente a .ts, donde pueden ser multiplexadas. Para esto se utiliza este código:

Código
  1. out = open("./pat.sec", "wb")
  2. out.write(pat.pack())
  3. out.close
  4. out = open("./pat.sec", "wb") # python   flush bug
  5. out.close
  6. os.system('sec2ts 0 < ./pat.sec > ./pat.ts')
  7. os.remove('pat.sec')

Donde PAT es el tipo de tabla, sec2ts es un comando de OpenCaster para transformar de .sec a .ts, y yo le agregué eliminar el archivo. sec pues no importa para este fin.

Ahora bien, de un archivo ya multiplexado .ts obtuve una de las tablas (PAT) en .sec, y necesito devolverla a .py para analizar su código. Mi pregunta es cómo puedo hacer esto.

De antemano, gracias. ;D

Por si acaso, todo el archivo .py que define a la tabla está anexo a continuación:

Código
  1. #!/usr/bin/python
  2.  
  3. import os
  4.  
  5. from dvbobjects.PSI.PAT import *
  6. from dvbobjects.DVB.Descriptors import *
  7. from dvbobjects.MPEG.Descriptors import *
  8.  
  9. pat = program_association_section(
  10. table_id = 0,
  11. section_syntax_indicator = 1,
  12. current_next_indicator = 1,
  13. transport_stream_id = 22,
  14. version_number = 1,
  15. section_number = 0,
  16. last_section_number = 0,
  17. program_loop = [
  18. program_loop_item(
  19. program_number = 47,
  20. PID = 0x0010,
  21. ),
  22. program_loop_item(
  23. program_number = 49,
  24. PID = 0x0013,
  25. ),
  26. program_loop_item(
  27. program_number = 51,
  28. PID = 0x0014,
  29. ),
  30. ],
  31. )
  32.  
  33. out = open("./pat.sec", "wb")
  34. out.write(pat.pack())
  35. out.close
  36. out = open("./pat.sec", "wb") # python   flush bug
  37. out.close
  38. os.system('sec2ts 0 < ./pat.sec > ./pat.ts')
  39. os.remove('pat.sec')
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines