我正在开发一项服务,将一个视频(我的)与另一个用户的视频(他/她上传的)连接起来并返回给用户。
首先我尝试使用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 的编解码器不使用全局标头,但容器格式需要全局标头
此时我有两个具有相同音频和编解码器的视频,让我们看看详细信息:
我尝试像以前一样连接视频......
ffmpeg -f concat -i mylist.txt -c copy mergedVideo.mp4
... 和没有显示任何错误,但是当我播放视频时,我看到第一个视频正常,但是第二个视频非常慢,每秒只有几帧,实际上mergedVideo.mp4 有 4 分 34 秒,而它应该有 39 秒(5.38 + 33.79)。
你能告诉我哪里出了问题吗?