Combining an audio file with video file in python

后端 未结 3 1067
北海茫月
北海茫月 2020-12-10 15:32

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 h26

相关标签:
3条回答
  • 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.

    0 讨论(0)
  • 2020-12-10 15:59
    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

    0 讨论(0)
  • 2020-12-10 16:01

    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')
    
    0 讨论(0)
提交回复
热议问题