Ffmpeg 是否可以用精确的长度(到毫秒)对音频流进行编码?

Ffmpeg 是否可以用精确的长度(到毫秒)对音频流进行编码?,ffmpeg,mp3,aac,avconv,vorbis,Ffmpeg,Mp3,Aac,Avconv,Vorbis,我希望在mp3、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 de

我希望在mp3、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秒


是否可以使用任何工具(我更喜欢avconv)实现30秒到毫秒的长度。

在您的示例中,您使用的是aac audio 44100khz。AAC每帧使用1024个样本。 1024/44100不能被30整除。所以,不,这是不可能的。可以调整启动样本,但您需要了解启动样本是如何工作的,并修改编码器

Mp3根据层的不同,每帧使用1152572或384个样本。 可能有一种组合是有效的。在这里看到更多


我对vorbis一无所知,所以我不知道这是否可能。

请参阅。看起来Libav没有针对MP4中跳过的示例进行调整您的链接显示“对不起,来宾,您被禁止使用此论坛”对我来说很好。我不知道你是怎么被禁止进入hydrogenaud.io的。也许他们阻止了你。试试google缓存或way back machine。这就是为什么我们认为对链接进行总结是合适的,而不仅仅是在SE上发布。但无论如何,谢谢你发布关于AAC的帖子。