Windows usa ffmpeg para duplicar la velocidad y recortar el video

Tabla de contenido

Descargar FFmpeg

Vídeo a doble velocidad

Procedimientos de operación

explicación del código

recorte de pantalla

especificar el área de cultivo

tiempo de corte

reportar error

Permiso denegado

Ejecute PowerShell con privilegios de administrador

Crear archivos de salida en otros directorios

Modificar permisos de directorio

Resumir


Para acelerar los videos MP4 usando PowerShell, puede usar la herramienta FFmpeg. Estos son los pasos para usar PowerShell y FFmpeg en Windows:

Descargar FFmpeg

Antes de usar PowerShell en Windows, primero debe descargar FFmpeg. La versión adecuada para su sistema operativo se puede descargar desde el sitio web oficial https://ffmpeg.org/download.html.

La dirección de descarga que uso:

https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-essentials.7z

Descomprímalo en una carpeta después de descargarlo.

Vídeo a doble velocidad

Procedimientos de operación

Abrir PowerShell

En Windows, puede abrir PowerShell presionando Win+X y luego seleccionando "Windows PowerShell".

Ingrese al directorio FFmpeg

En PowerShell, use el comando cd para ingresar al directorio bin de FFmpeg. Por ejemplo, si FFmpeg está instalado en C:\ffmpeg, puede usar el siguiente comando para ingresar al directorio bin:

CD C:\ffmpeg\bin

Acelera el vídeo dos veces con el siguiente comando:

./ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2[a]" -map "[v]" -map "[a] " -r 30 salida.mp4

explicación del código

El significado de los parámetros en este comando es el siguiente:

- `-i input.mp4`: especifica el archivo de entrada como input.mp4.

- `-filter_complex`: especifica filtros de vídeo complejos.

- `[0:v]setpts=0.5*PTS[v]`: Acelera la transmisión de vídeo dos veces, pero mantenla en 30 fotogramas por segundo. `[0:v]` significa la transmisión de video del archivo de entrada, `setpts=0.5*PTS` significa reducir a la mitad el PTS (sello de tiempo de presentación) de la transmisión de video, `[v]` significa la transmisión de video de salida.

- `[0:a]atempo=2[a]`: Acelera la transmisión de audio dos veces. `[0:a]` significa el flujo de audio del archivo de entrada, `atempo=2` significa el doble de la velocidad del flujo de audio, `[a]` significa el flujo de audio de salida.

- `-map "[v]" -map "[a]"`: especifica que el archivo de salida contiene secuencias de vídeo y audio.

- `-r 30`: Especifica que la velocidad de fotogramas del archivo de salida sea 30 fotogramas por segundo.

- `output.mp4`: especifique el nombre del archivo de salida como output.mp4.

Después de ejecutar el comando, FFmpeg acelerará el archivo de entrada input.mp4 dos veces y guardará el archivo de salida como output.mp4.

recorte de pantalla

Procedimientos de operación:

Por ejemplo, recorte el ancho del marco de 1280 a 640

Abra powershell en el directorio ....\ffmpeg\bin y ejecute:

./ffmpeg -i input.mp4 -filter_complex "[0:v]crop=640:trunc(ih/2)*2[v]" -map "[v]" -map 0:a -r 30 salida.mp4

Explicación del código:

El significado de los parámetros en este comando es el siguiente:

- `-i input.mp4`: especifica el archivo de entrada como input.mp4.
- `-filter_complex`: especifica filtros de vídeo complejos.
- `[0:v]crop=640:trunc(ih/2)*2[v]`: recorta la transmisión de vídeo a un ancho de 640 píxeles. `[0:v]` indica la transmisión de video del archivo de entrada, `crop=640:trunc(ih/2)*2` indica que la transmisión de video se recorta a un ancho de 640 píxeles y la altura mantiene el original relación. `trunc(ih/2)*2` significa ajustar la altura a un número par, esto se debe a que algunos códecs de vídeo requieren un número par de alturas. `[v]` indica la transmisión de video de salida.
- `-map "[v]" -map 0:a`: Especifica que el archivo de salida contiene la secuencia de video y la secuencia de audio del archivo de entrada.
- `-r 30`: Especifica que la velocidad de fotogramas del archivo de salida sea 30 fotogramas por segundo.
- `output.mp4`: especifique el nombre del archivo de salida como output.mp4.

Después de ejecutar el comando, FFmpeg recortará el archivo de entrada input.mp4 a un ancho de 640 píxeles y guardará el archivo de salida como output.mp4. Tenga en cuenta que los vídeos recortados pueden perder parte del contenido de los fotogramas.

especificar el área de cultivo

Procedimientos de operación:

Usar PowerShell y FFmpeg para recortar un video en un área rectangular específica, por ejemplo, para recortar un área rectangular determinada en un video de 1280*720.

Abra powershell en el directorio ....\ffmpeg\bin y ejecute:

./ffmpeg -i input.mp4 -filter_complex "[0:v]crop=640:360:320:180[v]" -map "[v]" -map 0:a -r 30 salida.mp4

El significado de los parámetros en este comando es el siguiente:

- `-i input.mp4`: especifica el archivo de entrada como input.mp4.
- `-filter_complex`: especifica filtros de vídeo complejos.
- `[0:v]crop=640:360:320:180[v]`: recorta la transmisión de video al área rectangular especificada. `[0:v]` indica la transmisión de video del archivo de entrada, `crop=640:360:320:180` indica que la transmisión de video se recorta a un ancho de 640 píxeles, una altura de 360 ​​píxeles y las coordenadas del punto de partida son (320, 180) área rectangular. `[v]` indica la transmisión de video de salida.
- `-map "[v]" -map 0:a`: Especifica que el archivo de salida contiene la secuencia de video y la secuencia de audio del archivo de entrada.
- `-r 30`: Especifica que la velocidad de fotogramas del archivo de salida sea 30 fotogramas por segundo.
- `output.mp4`: especifique el nombre del archivo de salida como output.mp4.

Después de ejecutar el comando, FFmpeg recortará el archivo de entrada input.mp4 en el área rectangular especificada y guardará el archivo de salida como output.mp4. Tenga en cuenta que al especificar el área de recorte, se debe mantener la relación de aspecto del vídeo para evitar distorsiones.

tiempo de corte

Recorta un período de tiempo específico en medio de un video largo.

Por ejemplo, use PowerShell y FFmpeg para recortar un video de 20 segundos en la parte 3 a 13, abra PowerShell en el directorio ....\ffmpeg\bin y ejecute:

./ffmpeg -i entrada.mp4 -ss 00:00:03 -t 00:00:10 -c copiar salida.mp4

El significado de los parámetros en este comando es el siguiente:

- `-i input.mp4`: especifica el archivo de entrada como input.mp4.
- `-ss 00:00:03`: Especifica comenzar a recortar desde el tercer segundo. Segundos de inicio
: `-t 00:00:10`: especifique recortar 10 segundos de video. duración
- `-c copy`: especifica el uso del códec "copiar" para copiar rápidamente transmisiones de video y audio sin volver a codificar.
- `output.mp4`: especifique el nombre del archivo de salida como output.mp4.

Después de ejecutar el comando, FFmpeg cortará los segundos 3 al 13 del archivo de entrada input.mp4 y guardará el archivo de salida como output.mp4. Tenga en cuenta que al recortar un vídeo, se debe mantener la relación de aspecto del vídeo para evitar distorsiones.

Si desea recortar el video a otros períodos de tiempo, puede cambiar los parámetros "-ss" y "-t" en el comando a otros valores. Por ejemplo, para recortar el video en la parte del quinto al decimoquinto segundo, puede usar el siguiente comando: ./ffmpeg -i input.mp4 -ss 00:00:05 -t 00:00:10 -c copy salida.mp4, este El comando es similar al comando anterior, excepto que el parámetro "-ss" está configurado en 5 segundos y el parámetro "-t" está establecido en 10 segundos.

Tenga en cuenta que al recortar un vídeo, debe asegurarse de que el período de tiempo recortado no exceda la duración total del vídeo.

reportar error

Permiso denegado

error rápido

[out#0/mp4 @ 00000284f9411ac0] Error al abrir la salida ./output.mp4: Permiso denegado

Este mensaje de error indica que FFmpeg no tiene permisos suficientes para crear archivos de salida en el directorio actual. Para resolver este problema, puede probar los siguientes métodos:

Ejecute PowerShell con privilegios de administrador

En Windows, puede hacer clic derecho en el icono de PowerShell y seleccionar "Ejecutar como administrador" para ejecutar PowerShell con privilegios de administrador. Hacerlo puede resolver el problema de permisos insuficientes.

Crear archivos de salida en otros directorios

Si el directorio actual no tiene permisos suficientes para crear el archivo de salida, puede intentar crear el archivo de salida en otro directorio. Por ejemplo, el archivo de salida se puede guardar en el directorio C:\temp con el siguiente comando:

./ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2[a]"-map "[v]" -map "[a] " -r 30 C:\temp\salida.mp4

Modificar permisos de directorio

Si ninguno de los métodos anteriores puede resolver el problema, puede intentar modificar los permisos del directorio actual. Puede hacer clic derecho en el directorio actual, seleccionar Propiedades y agregar permisos de escritura para el usuario actual en la pestaña Seguridad. Hacerlo puede resolver el problema de permisos insuficientes.

Tenga en cuenta que debe tener cuidado al modificar los permisos del directorio para no eliminar o modificar accidentalmente otros archivos.

Resumir

Descargar ffmpeg, descomprimir;

Abra powershell en el directorio ....\ffmpeg\bin y ejecute el comando.

La dirección del archivo de salida se puede guardar en otra dirección.

Supongo que te gusta

Origin blog.csdn.net/weixin_56337147/article/details/130873372
Recomendado
Clasificación