![ffmpeg usando -re y -ss juntos](https://rvso.com/image/1447614/ffmpeg%20usando%20-re%20y%20-ss%20juntos.png)
Estoy usando ffmpeg para transmitir en vivo un archivo de video a un servidor RTMP. Estoy usando la -re
opción para asegurar que el video se transmita a la velocidad adecuada a la fuente en vivo. De vez en cuando quiero transmitir el video a partir de unos minutos. Sin embargo, si agrego -ss 00:03:00
, por ejemplo, los primeros fotogramas no se transmiten, pero ffmpeg aún los reproduce a -re
gran velocidad, lo que significa que tengo que esperar (en este caso). tres minutos antes de que se pueda ver la transmisión, momento en el que comienza tres minutos después.
Esto es técnicamente lo que pedí, pero también es inútil en contexto. ¿Hay alguna manera de decirle a ffmpeg que comience en un momento determinado, pero que vaya directamente allí para que se comporte de manera útil cuando se use -re
?
La lista de correo de usuarios de ffmpeg tiene al menos dos casos de personas que se preguntan cómo hacer esto sin una solución aparente.
Respuesta1
Intente especificar -ss 00:03:00 antes de su archivo de entrada.
No he probado esto con captura de pantalla/transmisión en vivo, pero sé que funciona con la sintaxis de transcodificación estándar de ffmpeg.
Por ejemplo, el siguiente comando ingresará un archivo, transcodificará todo el archivo a h264 y luego solo guardará la salida a partir de la marca de 3 minutos.
ffmpeg -i [INPUT] -ss 00:03:00 -c:v h264 [output]
Por otro lado, el siguiente comando ingresará un archivo en la marca de 3 minutos, transcodificará desde ese punto y luego guardará el resultado. El archivo de salida debe ser idéntico al resultado anterior, pero como los primeros tres minutos no se decodifican, el tiempo de procesamiento es mucho más corto.
ffmpeg -ss 00:03:00 -i [INPUT] -c:v h264 [output]
Nuevamente, no sé si eso funciona con la transmisión en vivo. ¡Espero eso ayude!