ffmpeg - 如何使用 FFMPEG 进行音频交叉淡入淡出?

标签 ffmpeg

我正在尝试使用 FFMPEG 进行“切角”(更改摄像机角度)。我有来自左摄像头和右摄像头的 HLS 视频。开始时间有点不同步,所以左边的视频实际上是在右边的视频开始录制后 4.21 秒开始录制的。我试图显示从开始到 5 秒标记的右侧视频,然后从 0.79 秒标记切换到左侧视频直到 5.79 秒标记(这将是右侧相机上的 5-10 秒范围)。

我意识到这些削减可能落在 p 帧上——这是这里测试的一部分。我想看看 FFMPEG 是否会正确插入必要的 i 帧以进行平滑剪切。

最后,为了获得流畅的最终产品,我尝试在过渡期间进行 1 秒的音频交叉淡入淡出(不需要任何视频淡入淡出)。

我是 FFMPEG 的新手。我尝试了以下方法,但没有奏效。任何人都知道正确的命令是什么?

ffmpeg -i right.m3u8 -ss 0 -t 5 -i left.m3u8 -ss 0.79 -t 5 -async 1 -filter_complex acrossfade=d=1:c1=exp:c2=exp mixed.m3u8

最佳答案

如果视频不重叠,音频流也不会重叠,因此没有交叉淡入淡出的地方。因此,在这种情况下,我们将不得不使用不同的修剪过滤器来完成这项工作。

ffmpeg -i right.m3u8 -i left.m3u8 -filter_complex \
       "[0]trim=duration=5,setpts=PTS-STARTPTS[vr]; \
        [1]trim=0.79:duration=5,setpts=PTS-STARTPTS[vl]; \
        [0]atrim=duration=6,asetpts=PTS-STARTPTS[ar]; \
        [1]atrim=0.79:duration=5,asetpts=PTS-STARTPTS[al]; \
        [ar][al]acrossfade=d=1:c1=exp:c2=exp[a]; \
        [vr][vl]concat=n=2[v]" -map "[v]" -map "[a]" mixed.m3u8

关于ffmpeg - 如何使用 FFMPEG 进行音频交叉淡入淡出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200534/

相关文章:

command-line - Ffmpeg 没有以设定的速率获取缩略图

video - 除了使用(闪存)播放器进行视频传输之外的 VOD HTTP 实时流式传输

ffmpeg 在转换视频时写入

c# - 将 Unity texture2d 转换为 ffmpeg 的 YUV420P

FFMPEG - 制作稳定且零填充的帧计数器

video - ffmpeg转码为直播流

javascript - 在 HTML 视频标签中流式传输实时视频流量

c++ - 如何在 OpenFrameworks OF 0.8.4 OSX 中将输出帧记录到视频文件

opencv - 使用 OpenCV 的 ffmpeg 后端时如何更改 libx264 配置文件

ios - 如何在 FFmpeg 命令中指定图像