l'ajout de silencieux audio ffmpeg
Je suis en train d'utiliser ffmpeg pour ajouter un silencieux piste audio en un fichier MOV.
J'ai créé un silencieux piste audio en plus de la vidéo, et l'intention d'utiliser l'option la plus courte avec ffmpeg.
À l'aide de SoX v14.3.1, je l'exécute pour générer un fichier 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.
Ma base de ffmpeg commande ressemble à ceci:
ffmpeg -shortest \
-i silence.wav -acodec pcm_s16le \
-i vid_no_sound.mov -vcodec copy vid_with_sound.mov
Le résultat de ceci est:
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
J'ai essayé d'ajouter le -strict -2
comme suggéré, mais je ne sais pas où le mettre dans la ligne de commande.
J'ai passé deux heures à essayer des choses différentes, et la lecture de ffmpeg de la documentation, mais je suis toujours bloqué.
Comment puis-je ajouter un silencieux piste audio à un fichier mov?
Vous devez vous connecter pour publier un commentaire.
anullsrc
filtre audioVous pouvez utiliser
ffmpeg
pour créer le silence de l'audio et de le combiner avec une vidéo en une seule étape. Cet exemple permet d'utiliser leanullsrc
filtre audio pour générer stéréo audio silencieux avec une fréquence d'échantillonnage de 44100:channel_layout=stereo:sample_rate=44100
est la valeur par défaut, mais je l'ai inclus un exemple de comment utiliser ces options.Ignorant audio existant
Si votre fichier vidéo d'entrée a l'audio que vous voulez ignorer, puis utiliser le
-map
option pour remplacer la valeur par défaut flux de sélection comportement:-map 0:a -map 1:v
peut être traduit comme: à partir de la première entrée (0
) utilisation de l'audio (a
), et de la seconde entrée (1
) l'utilisation de la vidéo (v
).Notes
Ces exemples stream copy la vidéo, afin de ne pas vous ré-encodé (comme un "copier-coller").
Il est toujours recommandé d'utiliser un récent
ffmpeg
. Des liens vers les versions récentes sont sur le FFmpeg Téléchargement page ou vous pouvez vous référer à une étape-par-étape guide pour compilerffmpeg
.Si votre
ffmpeg
est vieux, alors vous aurez besoin d'utiliser-strict experimental
à utiliser-c:a aac
./dev/zero
travaille dansavconv
trop, mais-f lavfi
ne semble pas. N'oubliez pas le-shortest
drapeau, ou il va s'asseoir n'y a jamais de codage de silence.Au cas où quelqu'un d'autre, se termine ici, à travers un "moteur de recherche", voici une commande pour la dernière ffmpeg, fonctionne avec MP4 (H264/AVC):
Créer une vidéo à partir de l'image ou de convertir les images dans la vidéo, puis ajouter slient audio à l'aide de ffmpeg.
Vous pouvez utiliser le anullsrc source audio filtre dans ffmpeg. Exemple pour faire un canal 5.1, 48000 Hz fréquence d'échantillonnage de 10 secondes silencieux fichier vidéo à partir d'une image:
Importance de l'ordre. J'ai essayé le sox de commande ci-dessus et le ffmpeg commande ci-dessous et il fonctionne