Tabla de contenido
especificar el área de cultivo
Ejecute PowerShell con privilegios de administrador
Crear archivos de salida en otros directorios
Modificar permisos de directorio
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.