camara file ffmpeg save rtsp

file - camara - rtsp vs http



¿Cómo volcar el flujo de RTSP sin formato al archivo? (3)

Con este comando tuve una mala calidad de imagen

ffmpeg -i rtsp://192.168.XXX.XXX:554/live.sdp -vcodec copy -acodec copy -f mp4 -y MyVideoFFmpeg.mp4

Con esto, casi sin demora, obtuve una buena calidad de imagen.

ffmpeg -i rtsp://192.168.XXX.XXX:554/live.sdp -b 900k -vcodec copy -r 60 -y MyVdeoFFmpeg.avi

¿Es posible descargar una secuencia de RTSP sin formato al archivo y luego decodificar el archivo para que se pueda reproducir algo?

Actualmente estoy usando FFmpeg para recibir y decodificar la transmisión, guardándola en un archivo mp4. Esto funciona perfectamente, pero requiere una gran cantidad de CPU, y limitará severamente la cantidad de transmisiones RTSP que puedo recibir simultáneamente en mi servidor.

Me gustaría guardar el flujo en el archivo sin decodificarlo, y retrasar la parte de decodificación para cuando el archivo necesita ser abierto.

es posible?

He probado VLC, que es incluso más intensivo de CPU que FFmpeg. También he analizado esta pregunta, donde la respuesta dice que eliminar RTSP para archivar no es útil, y esta pregunta , donde el comentario debajo de la pregunta dice "El contenido RTSP crudo no es muy adecuado para guardar y reproducir ...", lo que parece para indicar que hay camino.

¡Gracias por adelantado!

EDITAR Aquí está el comando que estoy usando para FFmpeg:

ffmpeg -i rtsp://@192.168.241.1:62159 -r 15 C:/DB_Videos/2013-04-30 17_18_34.703.mp4


Puedes usar mplayer.

mencoder -nocache -rtsp-stream-over-tcp rtsp://192.168.XXX.XXX/test.sdp -oac copy -ovc copy -o test.avi

El códec de "copia" es solo una copia estúpida de la secuencia. Mencoder agrega un encabezado y cosas que probablemente quieras.

En el archivo fuente de mplayer, "stream / stream_rtsp.c" es una configuración prebuffer_size de 640k y no hay otra opción para cambiar el tamaño y luego volver a compilar. El resultado es que la escritura de la transmisión siempre se retrasa, lo que puede ser molesto para cosas como cámaras, pero además de esto, obtienes un archivo de salida y puedes reproducirlo en la mayoría de los lugares sin ningún problema.


Si está reencodificando en su línea de comando ffmpeg, esa puede ser la razón por la cual consume mucha CPU. Simplemente debe copiar las transmisiones en el contenedor individual. Como no tengo su línea de comando, no puedo sugerir una mejora específica aquí. Su acodec y vcodec deberían estar configurados para copiar es todo lo que puedo decir.

EDITAR: Al ver su línea de comando y dado que ya lo ha intentado, esto es para el beneficio de otros que se encuentran con la misma pregunta. El comando:

ffmpeg -i rtsp://@192.168.241.1:62156 -acodec copy -vcodec copy c:/abc.mp4

no hará la transcodificación y volcará el archivo en un mp4. Por supuesto, esto es asumiendo que los contenidos transmitidos son compatibles con un mp4 (que con toda probabilidad lo son).