有没有办法使用带有编解码器 AAC 到 AAC 的 ffmpeg 获得准确的 1 秒剪辑
Posted
技术标签:
【中文标题】有没有办法使用带有编解码器 AAC 到 AAC 的 ffmpeg 获得准确的 1 秒剪辑【英文标题】:Is there a way to get exactly a 1 second clip using ffmpeg with the came codec AAC to AAC 【发布时间】:2013-02-20 13:37:52 【问题描述】:如果我有一个包含视频流和音频流的 .mp4 文件。如果我执行这个命令:
ffmpeg -i input.mp4 -ss 00:00:14.000 -t 00:00:01.000 -vn -c:a libfaac audio.m4a
结果是持续时间:00:00:01.02,开始时间:0.021179。我想确保开始时间从 0 开始,所以我使用以下方法重新采样:
ffmpeg -i audio.m4a -ss 00:00:00.000 -t 00:00:01.000 -c:a libfaac audio2.m4a
此命令的结果有 Duration: 00:00:01.02, start: 0.000000。有没有办法以 0 值作为开始的最终结果精确到 1 秒?
我在之前的尝试中使用了标志 -map 0:1 -ab 128k -ar 44100 但它提供了相同的结果。
如果需要,我可以提供 ffmpeg 的完整输出。
谢谢。
【问题讨论】:
几个问题:原文件的音频采样率是多少? 44100 还是 48000 赫兹?原音频也是AAC吗?如果是这样,您的意思是进行音频转码(这会导致代际损失),而不是无损重组? 这里是音频流信息: Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s 至于你的第二个问题,音频转码就好了。只需要准确地获得一秒钟的持续时间,开始时间也为 0。 【参考方案1】:我通过选择框架解决了这个问题
$ ffmpeg -i input.mp4 -ss 14 -frames 46 -vn pass-1.m4a
$ ffmpeg -i pass-1.m4a -c copy audio.m4a
结果
$ ffmpeg -i 音频.m4a 输入#0,mov,mp4,m4a,3gp,3g2,mj2,来自“audio.m4a”: 元数据: 主要品牌:M4A 次要版本:512 兼容品牌:isomiso2 编码器:Lavf55.1.100 持续时间:00:00:01.00,开始:0.000000,比特率:135 kb/s 流 #0:0(und):音频:aac (mp4a / 0x6134706D),48000 Hz,立体声,fltp, 125 KB/秒 元数据: handler_name : SoundHandler【讨论】:
以上是关于有没有办法使用带有编解码器 AAC 到 AAC 的 ffmpeg 获得准确的 1 秒剪辑的主要内容,如果未能解决你的问题,请参考以下文章