Red de conocimiento informático - Aprendizaje de programación - Resumen del comando de función FFmpeg

Resumen del comando de función FFmpeg

Prólogo

Un FFmpeg tan potente puede realizar captura de video, conversión de formato de video, capturas de pantalla de video, marcas de agua de video, división de video, grabación de video, transmisión de video, cambio de parámetros de audio y video y otras funciones. Richy ha registrado cómo implementar estas funciones mediante comandos de terminal en este artículo para referencia futura.

Nota: Los comandos que se enumeran a continuación no están categorizados y los parámetros del comando son solo como referencia.

Si los parámetros son incorrectos, puede modificarlos consultando el artículo "Comando de parámetro FFmpeg".

Grupo 1

1. Separación de transmisión de video y transmisión de audio

ffmpeg -i input_file -vcodec copy -an output_file_video //Separación de transmisión de video ffmpeg - i input_file -acodec copy -vn output_file_audio //Separación de transmisiones de audio

Primer grupo

1. file_audio //Separación de transmisiones de audio

2. Demultiplexación de video

ffmpeg -i test.mp4 -vcodec copy -an -f m4v test.264<

ffmpeg -i test.avi -vcodec copy -an -f m4v test .264

3.

3. -i test.mp4 -vcodec h264 -s 352*278 -an -f m4v test.264

// Transcodificar a streaming archivo sin formato

ffmpeg -i test.mp4 -vcodec h264 -bf 0 -g 25 -s 352*278 -an -f m4v test.264

4./ /transcodificar a transmitir sin formato

ffmpeg -i test.avi -vcodec mpeg4 -vtag xvid -qsame test_ xvid.avi //transcodificar al archivo empaquetado

Descripción: -bf B número de fotograma Control, - g control de intervalo de fotograma clave, -s control de resolución

4.-copiar vcodec -copia acodec archivo_salida

5. Corte de vídeo

ffmpeg -i test.avi -r 1 -f imagen2 imagen-3d.jpeg // Extraer imagen

ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copiar -acodec copiar salida. avi //Clip video/// -r Extraer frecuencia de imagen

6. Grabación de video

ffmpeg -i rtsp://192.168.3.205:5555/test -vcodec copiar. avi

7. Utilice el corte de video ffmpeg

para cortar la fuente de video principal en varios clips de video en formato .ts y luego genere archivos de corte .m3u8.

El índice del archivo de segmento m3u8 es la fuente en vivo de hls para video html5

El comando es el siguiente:

ffmpeg -i dirección de origen del video -strict -2 -c: v libx264 - c: a aac -f h c :a aac -f hls m3u8 dirección de salida del archivo

8. ffmpeg escalado de video

Suponiendo que el tamaño del video original es 1080p (es decir, 1920×1080 px), escale a 1080p.

El comando es el siguiente:

ffmpeg -i dirección de origen de vídeo - vf scale=853:480 -acodec aac -vcodec h264 dirección de salida de vídeo (por ejemplo: out.mp4)

El significado de cada parámetro: -i a. Dirección de origen de vídeo - vf scale=853:480 -acodec aac -vcodec h264 Dirección de salida de vídeo (por ejemplo: out.mp4)

El significado de cada parámetro: -i a. Dirección de origen del vídeo - vf scale=853:480 -acodec aac -vcodec h264mov Especifica el nombre del archivo del vídeo que se va a procesar -vf scale=853:480 El parámetro vf se utiliza para especifique el filtro de video, donde la escala representa la escala, seguido de Los números representan la escala a 853 × 480 px, donde 853 px se calcula porque el video original tiene una relación de aspecto de 16:9, por lo que para que la altura del video de destino sea de 480 px, ancho = 480 x 9/16 = 853-acodec aac especifica Usar aac para codificar audio. Nota: Dado que la codificación aac incorporada de ffmpeg es actualmente (en el momento de escribir este artículo) experimental, se le pedirá que agregue el parámetro "-strict -2" para continuar, así que siéntase libre de agregarlo. Alternativamente, puede usar libfaac externo (requiere volver a compilar ffmpeg). -vcodec h264 especifica que el vídeo debe codificarse en h264. Nota: En la actualidad, el formato general (formato de paquete, formato de archivo) de grabación de video de teléfonos móviles es mov o mp4, la codificación de audio de ambos es aac y la codificación de video es h264. out.mp4 especifica el parámetro escala = 853:480 encima del nombre del archivo de salida. En escenarios de aplicaciones reales, generalmente solo necesita especificar uno de ancho y alto. Por ejemplo, si el alto se especifica como 480 o 720, el ancho. se puede pasar como ancho. En cuanto al ancho, puedes ingresar "-1" para calcular automáticamente la relación de aspecto del video original. En otras palabras, este parámetro se puede escribir como: escala=-1:480, por supuesto también puede ser escala=480:-1

9. ffmpeg crop

A veces Es posible que solo necesite la mitad del video. Un fragmento de contenido que no es necesario en ambos extremos. En este momento, puede recortar el video. Por ejemplo, un video de pantalla vertical es 1080 x 1920. Si desea mantener el medio 1080. x 1080, el comando es el siguiente: ffmpeg -i dirección de origen de video - estricto -2 -vf crop=1080:1080:0:420 Dirección de salida de video (como: out.mp4)

Entre ellos, crop=1080:1080:0:420 es el parámetro de recorte, el significado específico es crop= ancho: alto: x: y, donde ancho y alto representan el tamaño del recorte, x: y representa las coordenadas de la parte superior esquina izquierda del área de cultivo.

Por ejemplo, en el ejemplo actual, solo necesitamos mantener la parte media del video vertical, por lo que x no necesita moverse, por lo que hasta 0, y necesita moverse hacia abajo: (1920 - 1080) / 2 = 420

10 .Convertir vídeo a un formato determinado

ffmpeng -i source.mp4 -c:v libx264 -crf 24 destino.flv

Donde -crf es muy Importante, controla la transcodificación. La calidad del video, cuanto mayor sea la calidad, más grande será el archivo.

El rango de valores es de 0 a 51: 0 significa alta definición sin pérdidas; 23 es el valor predeterminado (si no especifica este parámetro), 51 tiene el tamaño de archivo más pequeño pero el peor efecto.

Cuanto menor sea el valor, mayor será la calidad, pero también cuanto más grande sea el archivo; el rango de valores recomendado es de 18 a 28. 18 es un valor que visualmente parece sin pérdidas o casi sin pérdidas, pero por supuesto no No significa que los datos (técnicamente) se transcodifiquen sin pérdidas.

Grupo 2

1. ffmpeg Envíe el archivo al servidor como una transmisión en vivo (RTMP FLV)

ffmpeg - re -i demo.mp4 -c copiar - f flv rtmp://w.gslb.letv/live/streamid

2. Guardar medios localmente

ffmpeg -i rtmp://r.gslb.letv/ live /streamid -c copy streamfile.flv

3. Envía la transmisión en vivo de video comprimido usando h264 y audio comprimido usando faac a otro servidor de transmisión en vivo

ffmpeg -i rtmp :// r.gslb.letv/live/streamid -c copiar streamfile.flv

4.glsb.letv/live/streamidA -c:a libfaac -ar 44100 -ab 48k -c:v libx264 -vpre lento -vpre baseline -f flv rtmp://w.glsb.letv/live/streamb

4. Extraiga el audio del vídeo, guárdelo como mp3 y envíelo

ffmpeg - i input.avi -b:a 128k output.mp3

Grupo 3

1. p>

2. Fusionar secuencia de imágenes en video

ffmpeg -f image2 -i imaged.jpg video.mpg

El comando anterior fusionará las imágenes (nombres como: image1.jpg. image2.jpg... etc.) en el archivo actual directorio a video.mpg

3. Descomponga el video en una secuencia de imágenes

ffmpeg -i video.mpg imaged.jpg

El comando anterior generará. imagen1.jpg.imagen2.jpg....

Los formatos de imagen soportados son: PGM.PPM.PAM.PGMYUV. JPEG. GIF. PNG.TIFF.

SGI

4. Vuelva a codificar el vídeo para reproducirlo en iPod/iPhone

ffmpeg -i source_video.avi input - acodec aac -ab acodec aac -ab 128kb -vcodec mpeg4 - b 1200kb -mbd 2 -flags 4mv trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4

5.

ffmpeg -i source_video.avi - b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4

6. Extrae sonido del vídeo.

y guárdelo como Mp3

ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3

7. Convierta el archivo wav a Mp3

p>

ffmpeg -i son_origine.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3

8. Convierte vídeo .avi a .mpg

ffmpeg -i video_origine.avi video_finale.mpg

9. ffmpeg -i video_origine.mpg video_finale.avi

10. Convertir .avi a gif animado (sin comprimir)

11. Sintetizar vídeo y audio

ffmpeg -i son.wav -i video_origine.avi video_finale.mpg

12. Convertir .avi a .flv

ffmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv

13. Convertir .avi a .dv

ffmpeg -i video_origine.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_finale.dv

O:

ffmpeg -i video_origine.avi - target pal-dv video_finale.dv

14. Comprimir .avi a divx

ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi

15. Comprime Ogg Theora a DVD Mpeg

ffmpeg -i film_sortie_cinelerra.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 film_terminate.mpg

16. Comprime .avi a SVCD mpeg2

Formato NTSC:

ffmpeg -i video_origine.avi -target ntsc-svcd video_finale.mpg

Formato PAL:

p>

ffmpeg - i video_origine.avi -target pal-dvcd video_finale.mpg

17. Comprimir .avi a VCD mpeg2

formato NTSC:

ffmpeg -i video_origine.avi -target ntsc-vcd video_finale.mpg

Formato PAL:

ffmpeg -i video_origine.avi -target pal-vcd

video _finale.mpg

18. Codificación multicanal

ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2

19. Extraer mp3 de flv

ffmpeg -i source.flv -ab 128k dest.mp3

Grupo 4

1. Envíe el archivo a vivir como una transmisión en vivo

ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName

2. Guarde los medios en vivo en un archivo local

ffmpeg - i rtmp://server/live/streamName -c copy dump.flv

3. Convierta el vídeo a compresión h264 y envíe una de las transmisiones en tiempo real a otra transmisión de servicio en tiempo real con el audio. sin cambios

ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v libx264 -vpre slow -f flv rtmp://server/live/h264Stream

4. Comprime el vídeo de una de las transmisiones en vivo a h264 y el audio a faac, y envíalo a otra transmisión de servicio en vivo

ffmpeg -i rtmp://server/live/originalStream -c : a libfaac -ar 44100 -ab 48k -c:v libx264 -vpre slow -vpre baseline -f flv rtmp://server/live/h264Stream

5. Deje uno de los videos sin cambios y use faac para el audio Envíe la transmisión en vivo comprimida a otra transmisión de servicio en vivo

ffmpeg -i rtmp://server/live/ originalStream -acodec libfaac -ar 44100 -ab 48k -c:v libx264 -vpre slow - vpre originalStream -acodec libfaac -ar 44100 -ab 48k -vcodec copy -f flv rtmp://server/live/h264_AAC_Stream

6. Copie un flujo de datos de alta definición en múltiples flujos de datos con diferentes definiciones de video y Redistribuir, el audio permanece sin cambios

ffmpeg -re -i rtmp://server/live/high_FMLE_stream -acodec copy -vcodec x264lib -s 640×360 -b 500k -vpre medium -vpre baseline rtmp: / / server/live/baseline_500k -acodec copy -vcodec x264lib -s 480×272 -b 300k -vpre medium -vpre baseline rtmp://server/live/baseline_300k -acodec copy -vcodec x264lib

-s 320×200 -b 150k -vpre medium -vpre baseline rtmp://server/live/baseline_150k -acodec libfaac -vn -ab 48k rtmp://server/live /audio_only_AAC_48k

7. Igual función, simplemente use la opción -x264opts

ffmpeg -re -i rtmp://server/live/high_FMLE_stream -c:a copy -c:v x264lib -s 640×360 -x264opts bitrate="0 " -x264opts bitrate="0" -x264opts bitrate="0" -x264opts bitrate="0" -x264opts x264opts bitrate=500:profile=baseline:preset=slow rtmp://server/live/baseline_500k -c:a copia -c:v x264lib -s 480×272 -x264opts bitrate=300.profile=baseline:preset=slow rtmp://server/live/baseline_300k -c:a copy -c:v x264lib -s 320×200 -x264opts bitrate =150: perfil=baseline.preset=slow rtmp://server/live/baseline_150k -c:a libfaac -vn -b:a 48k rtmp://server/live/audio_only_AAC_48k

8. Pasar DSSHOW captura la cámara y el audio actuales.

Video h264, liberación de compresión de audio faac

ffmpeg -r 25 -f dshow -s 640×480 -i video="Nombre de fuente de video": audio="Nombre de fuente de audio" -vcodec libx264 -b 600k - vpre slow -acodec libfaac -ab 128k -f flv rtmp://server/application/stream_name

9. Exporte una imagen JPG a vídeo mp4 a través del bucle de compresión h264

ffmpeg .exe -i INPUT.jpg -an -vcodec libx264 -coder 1 -flags loop -cmp chroma -subq 10 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -flags2 dct8x8 -trellis 2 -partitions parti8x8 parti4x4 -crf 24 - threads 0 -r 25 -g 25 -y OUTPUT.mp4

10. Cambie la transmisión de video normal a compresión h264, mantenga el audio sin cambios y envíelo a un servicio de transmisión de alta definición (nueva versión) FMS live =1)

ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v libx264 -vpre slow -f flv "rtmp://server/live/ h264Stream live= 1〃

Artículo/Saozhi Hasegai (Autor)