为什么使用 ffmpeg 连接两个视频(5s 和 33s)会产生 4m34s 的慢动作视频

为什么使用 ffmpeg 连接两个视频(5s 和 33s)会产生 4m34s 的慢动作视频

我正在开发一项服务,将一个视频(我的)与另一个用户的视频(他/她上传的)连接起来并返回给用户。

首先我尝试使用Concat 解复用器因为如果不需要的话我不想重新编码视频。使用相同的编解码器应该可以几乎立即连接视频。

用户可能会上传使用不同编解码器的不同视频,因此我需要将该视频转换为特定的编解码器。我现在遇到的问题是,即使使用相同编解码器的视频也无法正常工作,所以我想知道还需要什么。

我的mylist.txt

file './myVideo1.mp4'
file './userVideo1.mp4'

命令:

ffmpeg -f concat -i mylist.txt -c copy mergedVideo.mp4

它没有起作用,因为有不同的音频编解码器(pcm_u8 vs aac)所以我myVideo1用以下方法将音频转换为 aac;

ffmpeg -i myVideo1.mp4 -map 0:0 -map 0:1 -acodec libfaac -vcodec copy myVideo1_aac.mp4

这是一项中级任务,我提到它是因为我收到警告

流 0 的编解码器不使用全局标头,但容器格式需要全局标头

此时我有两个具有相同音频和编解码器的视频,让我们看看详细信息: 我的视频1_aac.mp4 userVideo1.mp4 信息

我尝试像以前一样连接视频......

ffmpeg -f concat -i mylist.txt -c copy mergedVideo.mp4

... 和没有显示任何错误,但是当我播放视频时,我看到第一个视频正常,但是第二个视频非常慢,每秒只有几帧,实际上mergedVideo.mp4 有 4 分 34 秒,而它应该有 39 秒(5.38 + 33.79)。

这是 mergedVideo.mp4 的信息: 在此处输入图片描述

你能告诉我哪里出了问题吗?

相关内容