首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使音频从视频中的指定点和最后指定的时间开始

如何使音频从视频中的指定点和最后指定的时间开始
EN

Stack Overflow用户
提问于 2022-04-03 16:17:09
回答 3查看 86关注 0票数 1

假设我有名为"samplevideo"的示例视频和名为"sampleaudio"的示例音频。我想用从5秒到12秒的采样音频替换samplevideo的音频。直到5秒标记视频音频不会改变,然后采样音频开始并持续7秒。

我尝试使用ffmpeg命令来解决这个问题:

代码语言:javascript
复制
ffmpeg -i samplevideo.mp4  -i sampleaudio.aac -ss 20 -map 0:v  -map 1:a -c:v copy output.mp4

问题:

它从20秒时间开始切割视频。我想要的是持久化的视频和原始音频流,直到它达到预期的时间标记,然后使用采样音频,直到期望的结束时间。

我很感谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-04 07:55:31

只需有选择性的静音使用amix。

代码语言:javascript
复制
ffmpeg -i samplevideo.mp4  -i sampleaudio.aac \
       -filter_complex "[0:a]volume=0:enable=between(t\,5\,12)[a0];\
                        [1:a]atrim=0:7,adelay=5s:all=1[a1];\
                        [a0][a1]amix=normalize=0:duration=first[aout]"
       -map 0:v  -map [aout] -c:v copy output.mp4

使用ffmpeg 5.0

票数 1
EN

Stack Overflow用户

发布于 2022-04-03 17:34:45

来自问题研究,查看:

https://superuser.com/questions/708125/add-audio-at-specific-time-in-video-using-ffmpeg

你可以试着:

代码语言:javascript
复制
ffmpeg -i samplevideo.mp4 -itsoffset 00:00:20 -i sampleaudio.aac -map 0:v -map 1:a -c:v copy -async 1 output.mp4

如果仍然不起作用,那么检查其他的建议,从研究结果。

票数 0
EN

Stack Overflow用户

发布于 2022-04-03 18:22:51

你需要用过滤器连接音频。试试这个:

代码语言:javascript
复制
ffmpeg -i samplevideo.mp4  -i sampleaudio.aac \
       -filter_complex "[1:a]asendcmd='5.0 astreamselect map 1;\
                                      12.0 astreamselect map 0',\
                        [0:a]astreamselect=inputs=2:map=0[aout]"
       -map 0:v  -map [aout] -c:v copy output.mp4
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71727741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档