How to combine The video and audio files in ffmpeg-python

我的未来我决定 提交于 2021-01-20 04:39:09

问题


I'm trying to combine a video(with no sound) and its separate audio file

I've tried ffmpeg ffmpeg -i video.mp4 -i audio.mp4 -c copy output.mp4 and it works fine.

i'm trying to achieve the same output from ffmpeg-python but with no luck. Any help on how to do this?


回答1:


I had the same problem.

Here is the python code after you have pip install ffmpeg-python in your environment:

import ffmpeg

input_video = ffmpeg.input('./test/test_video.webm')

input_audio = ffmpeg.input('./test/test_audio.webm')

ffmpeg.concat(input_video, input_audio, v=1, a=1).output('./processed_folder/finished_video.mp4').run()

v=1: Set the number of output video streams, that is also the number of video streams in each segment. Default is 1.

a=1: Set the number of output audio streams, that is also the number of audio streams in each segment. Default is 0.

For the details of ffmpeg.concat, check out: https://ffmpeg.org/ffmpeg-filters.html#concat.

You can check out more examples here: https://github.com/kkroening/ffmpeg-python/issues/281

Hope this helps!

PS. If you are using MacOS and have the error: FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg' while running the code, just brew install ffmpeg in your terminal.




回答2:


You could use subprocess:

import subprocess    
subprocess.run("ffmpeg -i video.mp4 -i audio.mp4 -c copy output.mp4")

You can also use fstrings to use variable names as input:

videofile = "video.mp4"
audiofile = "audio.mp4"
outputfile = "output.mp4"
codec = "copy"
subprocess.run(f"ffmpeg -i {videofile} -i {audiofile} -c {codec} {outputfile}")



回答3:


import ffmpeg
input_video = ffmpeg.input("../resources/video_with_audio.mp4")
added_audio = ffmpeg.input("../resources/dance_beat.ogg").audio.filter('adelay', "1500|1500")
merged_audio = ffmpeg.filter([input_video.audio, added_audio], 'amix')
(ffmpeg
.concat(input_video, merged_audio, v=1, a=1)
.output("mix_delayed_audio.mp4")
.run(overwrite_output=True))

you can review this link https://github.com/kkroening/ffmpeg-python/issues/281#issuecomment-546724993



来源:https://stackoverflow.com/questions/56973205/how-to-combine-the-video-and-audio-files-in-ffmpeg-python

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!