2016-10-20 9 views
0

フェードインとフェードアウトの問題があり、コードの下で使用していますが、完全には解決しません。 私はvoice.mp3という名前の声をvoice_length秒の長さで、声から最大の歌を持っています。 start_mix_time時の曲とミックスしたい。 音声開始音量を0.2、音声終了時に音量を1.0に戻す必要があります。ffmpegオーバーレイ音声がフェードインしてフェードアウトする

例えば、私が10秒間の長さと歌声を持っている場合、曲が3秒で再生を開始し、0.2秒にフェードアウトを開始してから5秒後に、曲は1曲目にフェードインされ、最後まで再生されます。ここ

サンプルである:所与例えば

ffmpeg -i song1.mp3 -i voice2.mp3 -filter_complex "[0]asplit[a][b]; \ 
     [a]atrim=duration=voice_length,volume='1-max(0.25*(t-start_mix_time-2),0)':eval=frame[pre]; \ 
     [b]atrim=start=start_mix_time,asetpts=PTS-STARTPTS[song]; [song][1]amix=inputs=2:duration=first:dropout_transition=2[post]; \ 
     [pre][post]concat=n=2:v=0:a=1[mixed]" \ 
     -map "[mixed]" output.mp3 

@Mulvya

答えて

0

は最後に、このことにより、パラメトリックを解決:

ffmpeg -i song.mp3 -i voice.mp3 -filter_complex \ 
    "[0]volume='1-((t-start_song_fade_out)*fade_power) + min_song_volume':eval=frame:enable='between(t,start_song_fade_out,end_song_fade_out)', \ 
    volume=min_song_volume:eval=frame:enable='between(t,end_song_fade_out,end_song_fade_out + voice_duration - 1)', \ 
    volume='(t-end_song_fade_out + voice_duration - 1)*fade_power + min_song_volume' \ 
    :eval=frame:enable='between(t,end_song_fade_out + voice_duration - 1,start_song_fade_in_back + end_song_fade_out-start_song_fade_out)' \ 
    [song]; [1]adelay='(end_song_fade_out*1000)'|'(end_song_fade_out*1000)'[vo]; \ 
    [song][vo]amix=inputs=2:duration=first:dropout_transition=0.01" -id3v2_version 3 output.mp3 
0

- 体積= 3 & 5トンの間で1から0.2にフェードインし、次いで17に対するT = 15からバック1にフェード。フェードインのための1、フェードアウトとオーバーレイの間のいずれかの1 -

ffmpeg -i song.mp3 -i voice.mp3 -filter_complex 
     "[0]volume='1-max((t-start_fade_t)*0.8/2,0)':eval=frame:enable='between(t,3,5)',volume=0.4:eval=frame:enable='between(t,5,15)',volume='0.2+max((t-end_fade_t)*0.8/2,0)':eval=frame:enable='between(t,15,17)'[song]; \ 
     [1]adelay=5000|5000[vo]; \ 
     [song][vo]amix=inputs=2:duration=first:dropout_transition=0.01" \ 
     output.mp3 

三のボリュームフィルタが歌に適用されます。 amixフィルタは入力の音量を下げるので、オーバレイ音量フィルタの値は希望の音量の2倍に設定されます。

+0

を私は複数のパラメータ値を使用することはできますか? 'start_voice_at'や' voice_duration'など? – Mehmed

+0

声の終わりに歌の音量が1より大きくなったようです。 – Mehmed

+0

実行したコマンドとそのコンソール出力を表示します。 – Mulvya

関連する問題