当我将多个 .ts 文件合并为一个 .mp4 文件时,音频出现间隙

当我将多个 .ts 文件合并为一个 .mp4 文件时,音频出现间隙

我尝试使用 ffmpeg 来实现这一点,但由于某种原因,音频中出现了间隙。

mylist.txt 列出所有.ts 文件。

ffmpeg -f concat -i mylist.txt -c copy video-all.ts
ffmpeg -i video-all.ts -acodec copy -vcodec copy video.mp4

我在这里上传了所有相关文件http://www.mediafire.com/file/gxul811x9ze5gmj/sm1586342.zip。例如,它经常在 0:37 处卡顿,位于 sm1586342-6.ts 和 sm1586342-7.ts 之间的边界处

答案1

首先,所有工人的同事都说,你的女人说的不是这个

首先!!!在阅读本教程之前,请先检查您是否喜欢视频的最终版本

新的最终视频和音频 https://www.mediafire.com/file/tk8ygblhv4r4bl1/tesis_end_bestquality.mp4/file

旧视频和音频 http://www.mediafire.com/file/k7f5yacxfufk4j3/all_before_tutorial.mp4/文件

您必须使用 ffmpeg 完成整个项目,但这并不意味着这就是全部!我们将一步一步地工作!

1https://i.stack.imgur.com/TUbvl.jpg 1

为什么?如果我们想象一下,如何烹制汉堡和土豆......厨师在第一步将所有食材放入油中,加热至 300 华氏度,5 分钟?...

我们将把这次行动分为两大部分,

流 0:0用于视频 流 0:1对于音频

这里的问题是,输入被分为 26 个部分,每个部分持续 6 秒,扩展名为“.ts”,按顺序排列并列在文件“mylist.txt”中

注意:您可以在这里找到所有媒体文件http://www.mediafire.com/folder/tdo9co17nu7gk/sm1586342

让我们看看我们必须连接哪些文件……

ffmpeg -i sm1586342-1.ts

输入 #0,mpegts,来自‘sm1586342-1.ts’:持续时间:00:00:06.01,开始:1.000000,比特率:289 kb/s 节目 1 流 #0:0[0x101]:音频:aac (LC) ([15][0][0][0] / 0x000F),44100 Hz,立体声,fltp,5 kb/s 流 #0:1[0x100]:视频:h264 (Constrained Baseline) ([27][0][0][0] / 0x001B),yuv420p(tv,bt709,渐进式),480x360 [SAR 1:1 DAR 4:3],24 fps,24 tbr,90k tbn,48 tbc

所以我们有两个流 ffmpeg -i sm1586342-1.ts 打印此文件

溪流#0:0[0x101]:声音的:AAC

溪流#0:1[0x100]:视频:h264(受限基线)([27][0][0][0] / 0x001B),yuv420p(电视,bt709,渐进式),480x360 [SAR 1:1 DAR 4:3],24 fps,24 tbr,90k tbn,48 tbc

这里的秘密是将工作流 0:0 和 0:1 分开。

首先连接音频的 0:0,而不是复制视频

ffmpeg -f concat -i mylist.txt -map 0:0 -map 0:1 -c copy -strict -2 -vn audio.ts

后来又有另一股流

ffmpeg -f concat -i mylist.txt -map 0:0 -map 0:1 -an -c copy video.ts

向 video.ts 致敬

这意味着我们告诉 ffmpeg 1)按照“mylist.txt”文件中的顺序合并所有文件,并且当您拥有唯一文件时,将相同质量的音频复制到输出文件音频.ts对于 video.ts 来说反之亦然

Concat 音频

好的,现在将 video.ts 复制为流 0:0,并将 audio.ts -strict -2 复制到 work_audiovideo.mp4

我尝试使用 ffmpeg 来实现这一点,但由于某种原因,音频中出现了间隙。

audio.ts 中没有间隙,但是 audio.ts 现在处于可怕的解码系统中,aac 格式 craapple 有损编解码器。

在这种情况下,您必须掌握音频文件......

怎么做?将所有音频放入立体声,增加频率以重新组织“间隙”,并放入一个真正的、友好的竞争者中,即 .flac,显然,或 .rar 或 .zip,但 flac 是“首选”(对于世界而言)

如果我们的耳朵可以听到,无论听的人服用了什么药物,他们的耳朵都可以听到 18,000 赫兹,而我们只有两只耳朵、两条听觉神经和大脑中解码和创建的一部分,如果音频是真实的,就像你想要的情感一样,那么,我们必须认为耳朵的“20,000 赫兹”是正确的比例/文件大小/解码时间/等...嘿,这是一条神经科学规则,与奈奎斯特的醉酒无关,那是一种幼稚的理论。

好的,我们将提供更多容量来向您显示音频,将立体声道中的频率增加到 48000 赫兹,速度为 16 位/秒,更多吗?是如何为您的狗购买食物,这是要讲的另一章。

使用糟糕的 audio.ts 编码器 (aac) 创建 audio.flac 文件

ffmpeg -i 音频.ts -map 0:0 -codec:a flac -ac 2 -ar 48000 -sample_fmt s16 音频.flac

现在,我们有 video.ts、audio.flac 和 audio.mp4

将 ts 改为 mp4

ffmpeg -i video.ts -map 0:0 -c copy -an video.mp4

THE END 是为了享受“tesis_end_bestquality.mp4”

ffmpeg -i 视频.mp4 -i 音频.flac -c copy -map 0:0 -map 1:0 -map_metadata -1 -movflags +faststart -strict -3 -f mp4 tesis_end_bestquality.mp4

是的,大家感谢大家,但是我想要传递这顶帽子,因为我想要一台新的 Mac,这是我的用于聊天或与新 Mac 协作的电子邮件,谢谢你们,问候!

[电子邮件保护]

最终论文 在此处输入图片描述

答案2

这几乎就像 xear 的答案,但不会重新编码音频。

ffmpeg -f concat -i mylist.txt -map 0:0 -map 0:1 -c copy -vn audio.aac
ffmpeg -f concat -i mylist.txt -map 0:0 -map 0:1 -an -c copy video.ts
ffmpeg -i video.ts -i audio.aac -c copy -map 0:0 -map 1:0 -map_metadata -1 -movflags +faststart -strict -3 -f mp4 final.mp4

这样播放效果更好,但我不确定音频是否正确连接,以及它是否会在音频和视频之间添加不同步。但至少我用我的耳朵听不到任何异常。

编辑:放弃这种方法,它引入了超过 10 分钟的长视频的音频设计。我现在使用ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4,注意-safe 0。仍然有点问题,但我放弃了,将视频切成多个 .ts 文件首先就是邪恶的。

相关内容