usar tutorial mac jdownloader how gui descargar como actualizar ffmpeg

tutorial - agregar audio silencioso en ffmpeg



ffmpeg tutorial (4)

Estoy tratando de usar ffmpeg para agregar una pista de audio silenciosa a un archivo MOV.

Creé una pista de audio silenciosa más larga que el video, y tengo la intención de usar la opción más corta con ffmpeg.

Usando SoX v14.3.1, ejecuto esto para generar un archivo wav:

sox -n -r 44100 -b 16 -c 2 -L silence.wav trim 0.0 60.000 # -n = Sox''s null file # -r = sample rate # -b = bits per sample # -c = num of channels # -L = little endian # filename # trim - is an effect, args start and length.

Mi comando básico de ffmpeg se ve así:

ffmpeg -shortest / -i silence.wav -acodec pcm_s16le / -i vid_no_sound.mov -vcodec copy vid_with_sound.mov

El resultado de esto es:

ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers built on Aug 27 2012 13:11:25 with gcc 4.4.5 configuration: --extra-cflags=-static --prefix=/root/ffmpeg_build/src/ffmpeg-0.11.1 --enable-bzlib --enable-gnutls --enable-libfreetype --enable-libmp3lame --enable-libdc1394 --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-openssl --enable-zlib --enable-gpl --enable-nonfree --enable-version3 libavutil 51. 54.100 / 51. 54.100 libavcodec 54. 23.100 / 54. 23.100 libavformat 54. 6.100 / 54. 6.100 libavdevice 54. 0.100 / 54. 0.100 libavfilter 2. 77.100 / 2. 77.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [wav @ 0x29ab2e0] max_analyze_duration 5000000 reached at 5015510 Guessed Channel Layout for Input Stream #0.0 : stereo Input #0, wav, from ''silence.wav'': Duration: 00:01:00.00, bitrate: 1411 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s Input #1, mov,mp4,m4a,3gp,3g2,mj2, from ''vid_no_sound.mov'': Metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt creation_time : 2012-07-25 13:41:44 Duration: 00:00:14.50, start: 0.000000, bitrate: 27457 kb/s Stream #1:0(eng): Video: qtrle (rle / 0x20656C72), rgb24, 1920x1080, 27450 kb/s, SAR 1920:1920 DAR 16:9, 24 fps, 24 tbr, 24 tbn, 24 tbc Metadata: creation_time : 2012-07-25 13:41:44 handler_name : Apple Alias Data Handler Stream #1:1(eng): Data: none (tmcd / 0x64636D74) Metadata: creation_time : 2012-07-25 13:42:06 handler_name : Apple Alias Data Handler timecode : 00:00:00:00 File ''vid_with_sound.mov'' already exists. Overwrite ? [y/N] y auto-inserting filter ''auto-inserted resampler 0'' between the filter ''src'' and the filter ''aformat'' [aresample @ 0x2ab3b00] chl:stereo fmt:s16 r:44100Hz -> chl:stereo fmt:flt r:44100Hz [NULL @ 0x2994320] Codec is experimental but experimental codecs are not enabled, try -strict -2 Output #0, mov, to ''vid_with_sound.mov'': Stream #0:0(eng): Video: qtrle (rle / 0x20656C72), rgb24, 1920x1080 [SAR 1920:1920 DAR 16:9], q=2-31, 27450 kb/s, 24 fps, 90k tbn, 24 tbc Metadata: creation_time : 2012-07-25 13:41:44 handler_name : Apple Alias Data Handler Stream #0:1: Audio: none, 44100 Hz, stereo, flt, 128 kb/s Stream mapping: Stream #1:0 -> #0:0 (copy) Stream #0:0 -> #0:1 (pcm_s16le -> aac) Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

He intentado agregar el -strict -2 como se sugiere, aunque no estoy seguro de dónde ponerlo en la línea de comandos.

He pasado dos horas intentando cosas diferentes y leyendo la documentación de ffmpeg, pero todavía estoy atascado.

¿Cómo agrego una pista de audio silenciosa a un archivo mov?


filtro de audio anullsrc

Puede usar ffmpeg para crear el audio silencioso y combinarlo con un video en un solo paso. Este ejemplo usará el filtro de audio anullsrc para generar audio estéreo silencioso con una frecuencia de muestreo de 44100:

ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -i video.mov / -shortest -c:v copy -c:a aac output.mov

  • channel_layout=stereo:sample_rate=44100 es el predeterminado, pero lo channel_layout=stereo:sample_rate=44100 solo como un ejemplo de cómo usar estas opciones.

Ignorando el audio existente

Si su archivo de entrada de video tiene audio que desea ignorar, utilice la opción -map para anular el comportamiento de selección de transmisión predeterminado:

ffmpeg -f lavfi -i anullsrc -i video.mov -shortest -c:v copy -c:a aac / -map 0:a -map 1:v output.mov

  • -map 0:a -map 1:v se puede traducir como: desde la primera entrada ( 0 ) use el audio ( a ), y desde la segunda entrada ( 1 ) use el video ( v ).

Notas

  • Estos ejemplos reproducirán en secuencia el video para que no se vuelva a codificar (como "copiar y pegar").

  • Siempre se recomienda usar un ffmpeg reciente. Los enlaces a compilaciones recientes se encuentran en la página de descarga de FFmpeg o puede consultar una guía paso a paso para compilar ffmpeg .

  • Si tu ffmpeg es antiguo, entonces necesitarás usar -strict experimental para usar -c:a aac .


Cree un video a partir de una imagen o conviértalo en un video y luego agregue el audio slient usando ffmpeg.

Puede usar el filtro de fuente de audio anullsrc en ffmpeg. Ejemplo para hacer un canal 5.1, frecuencia de muestreo de 48000 Hz, 10 segundos de archivo de video silencioso de la imagen:

ffmpeg -loop 1 -i img002.jpg -f lavfi -i anullsrc=channel_layout=5.1:sample_rate=48000 -t 10 -c:v libx264 -t 10 -pix_fmt yuv420p -vf scale=480:320 -y output.mp4

img002.jpg: archivo de imagen de entrada

-i anullsrc: agregar audio silencioso

-t 10: número de segundos

scale = 480: 320: ancho de resolución de video = 420 y altura = 320

-y: sobrescribir el archivo de salida existente

output.mp4: archivo de salida


El orden importa He probado el comando sox anterior y el comando ffmpeg a continuación y funciona

ffmpeg -shortest -i silence.wav -acodec pcm_s16le -i out.mov -vcodec copy -strict -2 vid_with_sound.mov


En caso de que alguien más termine aquí a través de "un motor de búsqueda", aquí hay un comando para el último ffmpeg , funciona con MP4 (H264 / AVC):

ffmpeg -f lavfi -i aevalsrc=0 -i input.mp4 -vcodec copy -acodec aac -map 0:0 -map 1:0 -shortest -strict experimental -y out.mp4