Combine Audio and Video with ffmpeg

By  on  

We have audio.  We have video.  We appreciate each of those media on their own but you can create an awesome work of art if you combine the two.  After all, how could you watch a sports highlight video without setting the visuals to some obscure techno track?  Blasphemy.

My favorite A/V utility, ffmpeg, allows you to merge an audio file and a video file into one brilliant piece of art:

ffmpeg -i video.mp4 -i audio.m4a -c:v copy -c:a copy output.mp4

You can even use an animated GIF for the video piece:

ffmpeg -i video.gif -i audio.m4a -c:v copy -c:a copy output.mp4

Banter aside, there are many good cases for combining an audio track with a video track, many examples being seen on YouTube.  Happy media creation!

Recent Features

  • By
    5 More HTML5 APIs You Didn’t Know Existed

    The HTML5 revolution has provided us some awesome JavaScript and HTML APIs.  Some are APIs we knew we've needed for years, others are cutting edge mobile and desktop helpers.  Regardless of API strength or purpose, anything to help us better do our job is a...

  • By
    Create a CSS Cube

    CSS cubes really showcase what CSS has become over the years, evolving from simple color and dimension directives to a language capable of creating deep, creative visuals.  Add animation and you've got something really neat.  Unfortunately each CSS cube tutorial I've read is a bit...

Incredible Demos

  • By
    Duplicate the jQuery Homepage Tooltips Using Dojo

    The jQuery homepage has a pretty suave tooltip-like effect as seen below: Here's how to accomplish this same effect using Dojo. The XHTML The above HTML was taken directly from the jQuery homepage -- no changes. The CSS The above CSS has been slightly modified to match the CSS rules already...

  • By
    Animated AJAX Record Deletion Using jQuery

    I'm a huge fan of WordPress' method of individual article deletion. You click the delete link, the menu item animates red, and the item disappears. Here's how to achieve that functionality with jQuery JavaScript. The PHP - Content & Header The following snippet goes at the...

Discussion

  1. Antoni

    There is a Firefox extension for this if anybody prefers UI over command line, https://addons.mozilla.org/en-US/firefox/addon/media-converter-and-muxer

  2. If you don’t want to re-encode audio and video, you can use following command:

    ffmpeg -i video.mp4 -i audio.m4a -c:v copy -c:a copy output.mp4
    

    It will execute a lot faster.

    • Updated! Thank you!

    • Bumpledink Scrotleworth

      You can specify to copy both at once like this:

      ffmpeg -i video.mp4 -i audio.m4a -c copy output.mp4
    • This works like charm and looks few flags shorter too.

  3. Hi David,

    Nice article. Would these same commands work efficiently on android too?

    We have a mute video to which we hope to add audio recorded from phone.

    Any guidance would be great.

  4. JC

    Can’t find ffmpeg in a zip file. Any other similar tool that opens in Windows?

  5. Kevin

    I’m not a programmer so I’m sort of confused and frustrated at what I’m looking at. I have no idea how to use this lol

  6. howard Johnson

    Here is an example batch file that you can drag the two files onto to do the joining, delete the two files and rename to the original. (drag by the mp4 file)

    @echo off 
    "C:\Program Files (x86)\ffmpeg\bin\ffmpeg.exe" -i %1 -i %2 -c:v copy -c:a copy d:\folder\output.mp4
    del %1
    del %2
    copy d:\folder\output.mp4 %1
    del d:\folder\output.mp4 
    pause
    
  7. Ravi Sharma

    where do we keep ffmpeg.exe file and that audio and video files to whom we merge.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!