Reputation: 204
I use ffmpeg to generate a complex video.
This video consists of the following materials:
Original video
Video dub
Background music
Subtitle
My code logic is as follows
Combine 'Original video' and 'Video dub' into 'Video A'
Subtitle 'Video A' as 'Video B'
Add 'Background music' for 'Video B' as 'Video C'
The 'Video C' is the video I want.
My Code
// Step1:
ffmpeg -i VideoDub.mp3 -i OriginalVideo.mp4 VideoA.mp4
// Step2:
ffmpeg -i VideoA.mp4 -vf subtitles=Subtitle.srt -y VideoB.mp4
// Step3:
ffmpeg -i VideoB.mp4 -i BackgroundMusic.mp3 -filter_complex "[1:a]aloop=loop=-1:size=2e+09[out];[out][0:a]amix" -ss 0 -t 100 -y VideoC.mp4
Design defect
My Question
How to solve the above problem?
Upvotes: 0
Views: 230
Reputation: 92928
Use a filter_complex to perform all filtering in one command.
ffmpeg -i OriginalVideo.mp4 -i VideoDub.mp3 -stream_loop -1 -i BackgroundMusic.mp3 -filter_complex "[0:v]subtitles=Subtitle.srt;[2][1]amix" -ss 0 -t 100 VideoC.mp4 -y
Upvotes: 2