Voy a crear una aplicación en C++ que crea una secuencia de fotos y luego las envía como transmisión de video a otra aplicación. alguna idea sobre cómo puedo comenzar? lo que quiero decir es, ¿qué bibliotecas debo usar y cuál es la codificación? Estoy pensando en MJPEG y UDP o RTP como protocolo ... cualquier ayuda sería muy apreciada.Transmisión de video usando C++
Respuesta
Si sus datos de entrada son solo un montón de imágenes aleatorias, no de video, no va a hacer "transmisión de video". Solo vas a enviar un montón de imágenes completas. No es necesario involucrar tecnología de codificación de video, solo realice la transmisión de imágenes más simple posible. Los codificadores de video dependen de que cada cuadro tenga varias relaciones con el anterior, como es común en el video real. Para las entradas de imágenes aleatorias, no van a poder comprimir tanto, y la compresión de un solo cuadro (por ejemplo, JPEG/PNG/lo que sea) es muy probable que ya se aplique a sus datos de entrada.
Probablemente sea más fácil enviar el contenido de cada archivo, junto con el nombre de archivo original, y haga que el cliente receptor vuelva a crear el archivo en disco y use las bibliotecas existentes orientadas a disco para abrir y decodificar la imagen.
Probablemente debería utilizar TCP para esto, nada en sus requisitos que indique que necesita utilizar las soluciones basadas en UDP/RTP más complicadas y propensas a errores.
Usa la biblioteca ffmpeg para codificar tu transmisión y usa la pila RTP/RTSP para transmitirlos.
Para la parte de transmisión puede usar Live555. Debe cubrir todo lo que necesita. Eso todavía deja el problema de generar un MJpeg Stream. Solo puedo adivinar aquí, FFMpeg podría ser lo que estás buscando (como veo, también cubre la transmisión, por lo que es posible que solo necesites esta). Creo que MJpeg es muy adecuado para su aplicación. En cuanto al TCP o UDP, eso depende de cómo quieras usarlo. UDP tiene sentido si quiere hacer que su transmisión sea Multicast; de lo contrario, preferiría TCP porque es más confiable.
Espero que sean algunos consejos útiles.
- 1. Transmisión de video usando Python
- 2. Reproducir transmisión de video RTP usando Qt?
- 3. Transmisión de video usando RTSP: Android
- 4. Transmisión de video desde Android
- 5. ¿Cómo desarrollar un reproductor de video que recibe transmisión de video en transmisión/multidifusión wi-fi?
- 6. Ejemplo de transmisión de video de Android
- 7. Creación de una transmisión de video MJPEG en C#
- 8. Transmisión de audio y video con Python
- 9. ¿Cómo implementar transmisión de video en vivo en C#?
- 10. Transmisión de video en Android: ¿dispositivo compatible?
- 11. Cómo crear video streaming usando C#
- 12. IPhone: Video API: transmisión de video en vivo modifique
- 13. iPhone cámara de video de transmisión
- 14. Cómo codificar/decodificar video usando C#?
- 15. Transmisión de video en vivo en HTML5
- 16. Transmisión de video en vivo con PHP
- 17. Transmisión de video en vivo desde ios
- 18. ¿Cómo vlc.py reproduce la transmisión de video?
- 19. transmisión de video DESDE un iPhone
- 20. Transmisión de video por UDP en Android
- 21. transmisión de video en vivo a Android
- 22. Desarrollo de una aplicación de video chat con transmisión de video de alta calidad
- 23. Transmisión de video con HTML 5 a través de node.js
- 24. Transmisión de audio y video de Android a PC/web.
- 25. Accediendo a la transmisión de video desde el dispositivo Looxcie
- 26. transmisión de video hacia y desde múltiples fuentes
- 27. Descodificación de transmisión RTSP en vivo: gran retraso de video usando MediaPlayer en Android
- 28. Transmisión de video en vivo entre dos teléfonos Android
- 29. Tutorial de transmisión de video en vivo de iPhone
- 30. Desarrollo de sitios web de transmisión de video
La excepción es "Motion JPEG" (MJPEG) que en realidad es solo una secuencia de cuadros comprimidos JPEG con un pequeño encabezado en cada uno. Mi cámara digital Canon capturó videos en este formato. –
La diferencia entre el grupo de imágenes y la transmisión de video (excepto por el tipo de compresión) es que en la transmisión de video tiene sincronización de tiempo. –