ffmpeg和Youtube上传 - 无法将现有音轨与外部音轨合并

时间:2011-10-25 17:53:43

标签: youtube ffmpeg youtube-api

我正在实现广告系列,其中的想法是用户正在制作电视广告。该过程如下:

  • 用户观看广告(YouTube视频)
  • 用户选择视频(在Flash Player中播放的mp4文件)
  • 用户使用网络摄像头/麦克风为所选视频录制自己的声音
  • 将用户的语音上传到服务器
  • 用户的语音与选定的视频(视频+音乐)合并,并保存为mp4文件
  • 用户的视频已上传到youtube

在实现音视频合并时,我发现了一些惊喜:

当我使用命令

ffmpeg -i sourceVideoFile.mp4 -i sourceAudioFile.mp3 -acodec copy -vcodec copy outputFile.mp4 - 视频的音乐被用户的声音取代。

所以我使用了选项 -newaudio

ffmpeg -i sourceVideoFile.mp4 -i sourceAudioFile.mp3 -acodec copy -vcodec copy outputFile.mp4 -newaudio - 我可以听到输出视频同时包含音乐和用户的声音。所以 - 这就是我想达到的目标。但...

令人惊讶的是,如果我将此视频上传到Youtube,在处理之后我可以观看并只能听到音乐。用户的声音消失!

那么,如何保持声音和音乐?

任何想法,大师? :)

1 个答案:

答案 0 :(得分:0)

这很有趣。

# Get audio files
ffmpeg -i SVF.mp4 SVF.wav
ffmpeg -i SAF.mp3 SAF.wav

# Merge audio streams
ffmpeg -i SVF.mp4 -f lavfi -i "
amovie=SVF.wav [a0];
amovie=SAF.wav [a1];
[a0][a1] amerge, pan=2:c0=c0+c2:c1=c1+c3" \
-map v -map 1 -c:v copy -c:a libvo_aacenc OF.mp4