¿Cómo obtener un trozo de audio o video?
![]() |
| Opción -t y -ss de ffmpeg |
¿Cuales son las opciones que usaremos?
Las opciones que usaremos son dos: -t, -ss
Opción -t duration
La opción -t duration puede usarse como opción de entrada y como opción de salida. Como opción de entrada marca un límite que indica cuanto tiempo se leeran los datos de entrada. Como opción de salida marca también un límite pero en este caso indica la duración de escritura del archivo de salida. El tiempo de lectura o de escritura se indica con un número que representa la cantidad de segundos a leer o escribir o empleando el formato hh:mm:ss que indica el tiempo en horas, minutos y segundos.Como nota adicional indicaré que hay una opción similar llamada -to position. Si éstas dos opciones se encuentran en una misma linea entonces la opción -t será la que se ejecutará ya que tienen prioridad sobre la opción -to position.
Opción -ss position
Esta opción se usa tanto en archivos de entrada como de salida. Como opción en archivos de entrada sirve para indicar en qué momento comenzará a leerse el archivo; es decir, indica un desplazamiento desde el punto inicial hasta el punto que le señalemos. La duración se marca en segundos o en un formato del tipo hh:mm:ss.Muchas veces no es posible colocarse en el punto que deseemos por lo que ffmpeg se posicionará en el punto más cercano al punto preestablecido y la porción restante se desechará.
Esta porción no se perderá si hacemos una copia exacta empleando la opción copy o si habilitamos la opción -noaccurate_seek
Si esta opción la empleamos con archivos de salida entonces se escribirá el archivo de salida sin contar el tiempo señalado por la opción -ss; es decir, si esperamos obtener un archivo de salida de 300 segundos pero señalamos un tiempo de 60 segundos con la opción -ss, entonces solo se obtendrán los últimos 240 segundos de los esperados.
Ejemplos
Vamos a combinar estas opciones con un archivo de música y empleando la biblioteca ffplay para reproducirlo.
Si escribimos ffplay -i -ss 30 -t 100 salida.mp3
Con la línea anterior estamos diciéndole al reproductor de ffmpeg que comience la reproducción en el segundo 30 y continúe con ella durante 100 segundos.
Si escribimos ffmpeg -i entrada.mp3 -ss 100 -t 5 salida.mp3
estamos diciendo que deseamos tomar el archivo entrada.mp3, comenzar el proceso en el segundo 100 y grabar 5 segundos a partir del segundo 100.
Si escribimos ffmpeg -i entrada.mp4 -ss 100 -t 5 -c copy salida.mp4
estamos diciendo que tomaremos 5 segundos a partir del segundo 100 y qué copiaremos los codecs. Con esto último conseguimos dos cosas muy interesantes. 1) No merma la calidad del video ya que estamos copiando los mismos codecs y no estamos haciendo ninguna recodificación. 2) El tiempo que dura todo el proceso disminuye drásticamente en comparación con un proceso en donde si tengamos que hacer una recodificación.
Pues bien, con este último ejemplo estamos contestando la pregunta con el que titulamos esta participación. Podrán notar que no es complicado una vez que entendemos el porqué de cada elemento en la linea de comandos.
Fuente: www.ffmpeg.org/


Comentarios
Publicar un comentario