микширование ffmpeg и обработка микширования аудио и видео

микширование ffmpeg и обработка микширования аудио и видео

команда ffmpeg

Вот несколько команд ffmpeg для обработки микширования аудио и видео, которые я недавно изучил.

// 音频拼接
ffmpeg -i "concat:first.mp3|second.mp3" -acodec copy third.mp3 (third格式和first保持一致)

// 音频拼接
ffmpeg -i "concat:first.mp3|second.mp3" -i second.mp3 -acodec copy test.mp3 -map_metadata 0:1 (third格式和second保持一致)

// 音视频混合,不调整音量
ffmpeg -i ../../video/demo.mp4 -i ../../video/new1.mp3 -c:v copy -map 0:v:0 -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" -ac 2  ../../video/mix_amerge.mp4

// 音频混合,调整第1个音频的音量和第2个音频的音量
ffmpeg -i ../../video/output.mp3 -i ../../video/new1.mp3 -filter_complex "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a0]; [1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.9[a1]; [a0][a1]amerge=inputs=2[aout]" -map "[aout]" -ac 2 ../../video/mix_v0.5.mp3

// 音频混合,调整第1个音频的音量和第2个音频的音量
ffmpeg -i ../../video/output.mp3 -i ../../video/new2.mp3 -filter_complex "[0:a]aformat=sample_fmts=fltp:channel_layouts=stereo,volume=0.5[a0]; [1:a]aformat=sample_fmts=fltp:channel_layouts=stereo,volume=0.9,adelay=5000|5000|5000,apad[a1]; [a0][a1]amerge=inputs=2[aout]" -shortest -map "[aout]" -ac 2 ../../video/mix_new1.mp3
// apad  -shortest   是使音频长度为最长
// adelay            延时播放时间

// 音视频混合,调整第1个音频的音量和第2个音频的音量 
ffmpeg -i ../../video/demo.mp4 -i ../../video/new2.mp3 -filter_complex "[0:a]aformat=sample_fmts=fltp:channel_layouts=stereo,volume=0.4[a0]; [1:a]aformat=sample_fmts=fltp:channel_layouts=stereo,volume=0.9,adelay=5000|5000|5000[a1]; [a0][a1]amix=inputs=2:duration=first[aout]" -map [aout] -ac 2 -c:v copy -map 0:v:0 ../../video/mix_amerge3.mp4
或者
ffmpeg -i ../../video/demo.mp4 -i ../../video/new2.mp3 -filter_complex [0:a]aformat=sample_fmts=fltp:channel_layouts=stereo,volume=0.4[a0];[1:a]aformat=sample_fmts=fltp:channel_layouts=stereo,volume=0.9,adelay="5000|5000|5000"[a1];[a0][a1]amix=inputs=2:duration=first[aout] -map [aout] -ac 2 -c:v copy -map 0:v:0 E:\software\video\outfileName.mp4 E:\software\outfileName.mp4

узел выполняет команду ffmpeg

Вам нужно только поместить ffmpeg.exe в каталог, где выполняется узел , и вы можете использовать узел для выполнения команды ffmpeg.
Пример кода:

const child = require('child_process')
child.exec("ffmpeg -i "concat:first.mp3|second.mp3" -acodec copy third.mp3", function(err){
    
    
    if (err) {
    
    
        console.log(err.message);
        info.message = err.message;
        event.sender.send(data.callback, JSON.stringify(info))
    } else {
    
    
        info.flag = true;
        info.message = '音频处理保存成功'
        event.sender.send(data.callback, JSON.stringify(info))
    }
})

Guess you like

Origin blog.csdn.net/qq_36607860/article/details/86472948