10

I am writing a program in Python on RaspberryPi(Raspbian), to combine / merge an audio file with video file.

Format of Audio file is WAVE Format of VIdeo file is h264

Audio and video already recorded and created at same time successfully, I just need to merge them now.

Can you please guide me on how do I do that?

Fahadkalis
  • 2,371
  • 5
  • 20
  • 35

3 Answers3

6

I got the answer of my Question, you can also try it and let me know if need further assistance

cmd = 'ffmpeg -y -i Audio.wav  -r 30 -i Video.h264  -filter:a aresample=async=1 -c:a flac -c:v copy av.mkv'
subprocess.call(cmd, shell=True)                                     # "Muxing Done
print('Muxing Done')
Fahadkalis
  • 2,371
  • 5
  • 20
  • 35
4

The best tool for manipulating audio and video stream is ffmpeg/libav. Do you have to use Python? You could use command-line binaries from these projects.

For example, taken from https://wiki.libav.org/Snippets/avconv:

avconv -v debug -i audio.wav -i video.mp4 -c:a libmp3lame -qscale 20 -shortest output.mov

(Of course you'll want to tweak the parameters for your files, and qscale for the quality you want.)

You can call this from within python using the subprocess module. If you have to do it in python directly, you could use PyAV (https://pypi.python.org/pypi/av/0.1.0), but this would involve more effort.

rod
  • 1,883
  • 3
  • 14
  • 24
2
def combine_audio(vidname, audname, outname, fps=25):
    import moviepy.editor as mpe
    my_clip = mpe.VideoFileClip(vidname)
    audio_background = mpe.AudioFileClip(audname)
    final_clip = my_clip.set_audio(audio_background)
    final_clip.write_videofile(outname,fps=fps)

source::https://www.programcreek.com/python/example/105718/moviepy.editor.VideoFileClip Example no 6

faiza
  • 21
  • 1