Я хочу создать выходной файл длиной точно 30 секунд в кодеках mp3, aac или vorbis.Я использовал 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).