¿Cómo recorto (el tiempo, no la imagen) un archivo de video MP4

17

Estoy buscando una aplicación que me ayude a cortar fragmentos de inicio y final de un archivo mp4 de manera eficiente y sin pérdidas .

Por ejemplo, ¿hay algo que me permita encontrar un fotograma clave y copiar el lote entre ese y otro fotograma clave, sin necesidad de volver a codificar el lote (lento y con pérdida) y sin perder la sincronización AV?

Por mp4, me refiero a video H264 + audio AAC en un contenedor MP4

Antes de h264 días, Avidemux era una herramienta excelente para esto, ya que puede reutilizar las transmisiones codificadas originales, lo que significa que no hay pérdida y tomar solo unos segundos para crear la versión recortada, pero es inútil con h264: la apertura de uno le ofrece dos opciones: usar el modo seguro (que pierde la sincronización AV de forma masiva) o use el modo peligroso que lo bloquea inmediatamente.

AFAIK, Openshot, Kdenlive, Pitivi, etc., lo harán decodificando y recodificando (lento y con pérdida).

Parece algo simple (¡probablemente muestra mi falta de conocimiento aquí!), Así que me preguntaba si me estoy perdiendo algo.

artfulrobot
fuente
Si necesita cortar el final del video, vea la respuesta que le di sobre otro tema: askubuntu.com/questions/412558/…
v010dya
2
superuser.com/questions/377343/… se relaciona bien y ofrece una solución similar a la siguiente, pero agrega buena información.
pbhj

Respuestas:

24

ffmpeg

ffmpeg -i source.mp4 -ss 00:00:00 -t 00:00:00 -vcodec copy -acodec copy splice.mp4

Esto tomará source.mp4 y, usando los mismos códecs de audio y video y sin degradar la calidad, tome -t time after -ss start time video y envíe su splice.mp4

Tenga en cuenta que el tiempo es muy sensible al formato (el ejemplo anterior es un formato). Además, en algunas distribuciones, ffmpegse ha reemplazado por avconv. Simplemente ejecute el comando anterior y reemplace la palabra ffmpeg con avconv para resolver esto.

Otra excelente fuente de información sobre este tema. (Gracias @pbhj)

earthmeLon
fuente
3
Brillante. Tenga en cuenta que no puede abreviar el -ssargumento, es decir, 9:00durante 9 minutos debe expresarse ya 00:09:00que de lo contrario se ignora en silencio. Creo que esta respuesta también debe actualizarse para su uso avconv, de acuerdo con la advertencia de ffmpeg. Gracias.
artfulrobot
Nota al margen, esa advertencia solo refleja que tiene avconv instalado en lugar de ffmpeg, por lo que su ejecutable ffmpeg en realidad es solo un contenedor alrededor de avconv y ese contenedor puede quedar obsoleto pronto. Si tuviera instalado ffmpeg pero no avconv, no recibiría esa advertencia. No tiene la intención de significar que ffmpeg en sí mismo está en desuso (sin embargo, las versiones recientes de Ubuntu han elegido instalar avconv de forma predeterminada en lugar de ffmpeg).
thomasrutter 01 de
5

En Ubuntu 16.04 el equivalente de ffmpeges el comandoavconv

Para instalarlo ejecute:

sudo apt-get install libav-tools

Ejemplo de línea de comando para recortar un video por tiempo:

avconv -i originalFile.ogv -ss 00:00:00 -t 00:00:10 -vcodec copy -acodec copy croppedFile.ogv
AlejandroVD
fuente
No disponible en versiones posteriores de Ubuntu.
lolmaus - Andrey Mikhaylov