audio - Concat 2 视频保留音频时间戳并在单个 ffmpeg 命令中添加覆盖(水印)

标签 audio video ffmpeg

我需要使用 ffmpeg 执行多个操作,问题是似乎要添加水印和连接视频,我需要重新编码视频。在三个步骤中,它需要很长时间。所以我想只用一种视频编码来做我需要的一切。

我有一个视频#1,它有音频。我还有一个视频#2,也有音频。我想连接#1 和#2(或先播放#1,然后播放#2),然后在#2 中为视频的其余部分添加水印,保留音频时间戳。

我在互联网上搜索了很多,到目前为止我得到了这个:

ffmpeg -i Video1.mp4 -itsoffset 4 -i Video2.mp4 -i watermark.png -filter_complex "overlay=5:5" -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart Out.mp4

视频#2 的声音消失了,也没有水印。

我不精通 ffmpeg,也不精通音频和视频术语,因此对于可能的可怕误解,我深表歉意。

提前致谢。

最佳答案

利用

ffmpeg -i Video1.mp4 -i Video2.mp4 -i watermark.png
   -filter_complex
       "[1][2]overlay=5:5[v2];
        [0][0:a][v2][1:a]concat=n=2:v=1:a=1"
   -c:v libx264 -crf 21 -c:a aac -b:a 384k -ar 48000 -movflags +faststart Out.mp4

对于要连接在一起的视频,必须使用一种 concat 方法。在这种情况下,它是 concat 过滤器。此过滤器要求两个视频具有相同的分辨率和纵横比。

首先水印覆盖在第二个视频上,然后将该结果与第一个视频的 A/V 和第二个视频的 A 一起馈送到 concat。

关于audio - Concat 2 视频保留音频时间戳并在单个 ffmpeg 命令中添加覆盖(水印),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42932386/

相关文章:

actionscript-3 - 有没有办法在影片剪辑上使用声音 channel ?

audio - ffmpeg 转换并将静音音轨添加到 mpeg

ffmpeg - 使用 FFMPEG 录制 IP 摄像机流

ffmpeg - 在 Microsoft Visual Studio 中链接 ffmpeg 代码

android - 将桌面直播到 android 平板电脑和延迟

Android 蓝牙音频播放和录制

audio - 获取所有当前播放的声音(或获取缓冲区播放声音的数量)

jquery - jQuery Mobile MP3播放器示例

html - 视频循环在本地主机而不是在服务器中播放

html - 我想添加背景视频并将图像放在横幅中