我希望在、aac或vorbis编解码器中创建一个长度为30秒的输出文件。我使用avconv (也尝试了ffmpeg)并使用以下命令:
avconv -i input_file_here -c:a aac -b:a 320k -t 30 out.mp4这将产生输出,说明它编码了整整30秒,但随后:
$ avprobe out.mp4
avprobe version v13_dev0-1648-gc4642788e, Copyright (c) 2007-2018 the Libav developers
built on Apr 24 2019 15:49:35 with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf57.83.100
Duration: 00:00:30.02, start: 0.023220, bitrate: 323 kb/s
Stream #0:0(und): Audio: aac (LC) [mp4a / 0x6134706D]
44100 Hz, stereo, fltp, 321 kb/s (default)
Metadata:
handler_name : SoundHandler
# avprobe output当我在mp3中编码时,它正确地显示它在编码过程中所做的工作超过30秒。当我尝试vorbis时,它做的时间略少于30秒。
是否可以使用任何工具达到30秒到毫秒的长度(我更喜欢avconv)。
发布于 2019-04-26 18:34:47
在您的示例中,您使用的是aac音频44100khz。AAC每帧使用1024个样本。1024/44100不能被30整除。所以,不可能。也许可以调整启动样本,但是您需要了解启动样本是如何工作的,并修改编码器。
Mp3使用每帧1152,572或384个样本,这取决于层。可能有一种组合能起作用。在这里可以看到更多https://hydrogenaud.io/index.php/topic,85125.0.html
我不知道任何关于vorbis的事,所以我不知道是否可能。
https://stackoverflow.com/questions/55870922
复制相似问题