web-dev-qa-db-fra.com

Commande FFMPEG sur une seule ligne pour fusionner vidéo / audio et conserver les deux fichiers audio

J'ai un projet qui nécessite la fusion d'un fichier vidéo avec un autre fichier audio. La sortie attendue est un fichier vidéo qui contiendra à la fois l'audio de la vidéo réelle et le fichier audio fusionné. La longueur du fichier vidéo de sortie sera identique à la taille du fichier vidéo réel.

Existe-t-il une commande FFMPEG sur une seule ligne pour y parvenir en utilisant les paramètres de copie et de carte?

La forme vidéo que j'utiliserai est flv ou mp4 Et le format de fichier audio sera mp3

18
Deepak Prakash

Il peut être réalisé sans utiliser la carte également.

ffmpeg -i video.mp4 -i audio.mp3 output.mp4

Si vous souhaitez que le fichier output.mp4 s'arrête dès que l'une des entrées s'arrête (audio/vidéo), utilisez

-shortest

Par exemple: ffmpeg -i video.mp4 -i audio.mp3 -shortest output.mp4

Cela garantira que la sortie s'arrête au fur et à mesure que l'une des entrées est terminée.

Puisque vous avez demandé que vous vouliez le faire avec la carte. voici comment vous le faites:

ffmpeg -i video.mp4 -i audio.mp3 -map 0:0 -map 1:0 -shortest output.mp4

Maintenant, puisque vous souhaitez conserver l'audio du fichier vidéo, envisagez de fusionner audio.mp3 et video.mp4. Ce sont les étapes:

  1. Extraire l'audio du video.mp4

ffmpeg -i video.mp4 1.mp3

  1. Fusionnez audio.mp3 et 1.mp3

ffmpeg -i audio.mp3 -i 1.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 audiofinal.mp3

  1. Supprimez l'audio de video.mp4 (cette étape n'est pas nécessaire. Mais juste pour le faire correctement)

ffmpeg -i video.mp4 -an videofinal.mp4

  1. Fusionnez maintenant audiofinal.mp3 et videofinal.mp4

ffmpeg -i videofinal.mp4 -i audiofinal.mp3 -shortest final.mp4

note: dans la dernière version de ffmpeg, il vous invitera uniquement à utiliser '-strict -2' au cas où il utiliserait alors ceci:

ffmpeg -i videofinal.mp4 -i audiofinal.mp3 -shortest -strict -2 final.mp4

j'espère que cela t'aides.

49
Rajath

**

Vous ne pouvez pas faire cela en utilisant un cmd.

**

1. Obtenez l'audio du fichier vidéo, le nom du fichier audio est a.mp

ffmpeg.exe -i video.mp4 a.mp3

2. fusionnez deux fichiers audio (audio.mp3 + a.mp3 = audiofinal.mp3)

ffmpeg.exe -i audio.mp3 -i a.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 audiofinal.mp3

3. fusionner le fichier vidéo et le fichier audio (video.mp4 + audiofinal.mp3 = output.mp4)

ffmpeg.exe -i video.mp4 -i audio.mp3 -map 0:v -map 1:a -c copy -y output.mp4
11
Aliceljm

Cas d'utilisation:

  • ajoutez de la musique à votre arrière-plan
  • vous avez rendu une vidéo, mais vous avez coupé une partie de celle-ci, vous ne voulez donc pas la restituer (car elle est trop longue), mais vous ne rendez que la piste audio (rapide) et vous voulez la fusionner avec la vidéo originale.

en supposant

  • vous avez votre vidéo avec votre discours ( ou simplement une piste audio, peu importe )
  • votre fichier_musique n'est pas bruyant. Sinon, vous ne vous entendrez pas D:

Pas:

1) Extraire l'audio de la vidéo

ffmpeg -i test.mp4 1.mp3

test.mp4 - votre fichier

2) fusionner audio.mp3 et 1.mp

ffmpeg -i audio.mp3 -i 1.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 audiofinal.mp3

audiofinal.mp3 - audio avec musique

3) Supprimer l'audio de l'original

ffmpeg -i example.mkv -c copy -an example-nosound.mkv

example-nosound.mkv - votre vidéo sans audio

4) Fusionner avec un son correct

ffmpeg -i audiofinal.mp3 -i example-nosound.wmv -c:v copy -vcodec copy final.wmv

final.wmv - votre vidéo parfaite.

3
Nikolay Gogol