【问题标题】:ffmpeg and Youtube upload - can't merge existing audio track with external oneffmpeg 和 Youtube 上传 - 无法将现有音轨与外部音轨合并
【发布时间】:2011-12-15 04:04:45
【问题描述】:

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

  • 用户观看广告(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,经过处理后,我可以观看它并且只能听到音乐。用户的声音消失了!

那么,如何同时保留声音和音乐?

大师们有什么想法吗? :)

【问题讨论】:

  • -newaudio 正在添加另一个流,您的播放器似乎同时播放两个流,youtube 显然只允许一个流。您需要使用将音频流合并为一个的东西,这需要重新编码音频

标签: youtube ffmpeg youtube-api


【解决方案1】:

这很有趣。

# 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多