3

Я конвертирую файл FLAC в AAC. Я заметил, что продолжительность выходного файла отключена. Это даже в том случае, если вы явно устанавливаете длительность вывода, он просто игнорируется

$ ffmpeg -i foo.flac -t 00:02:52.48 -c:a aac -strict -2 bar.aac
[flac @ 000000000035d960] max_analyze_duration 5000000 reached at 5015510 microseconds

Input #0, flac, from 'foo.flac':
  Duration: 00:02:52.48, bitrate: 446 kb/s
    Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
Output #0, adts, to 'bar.aac':
    Stream #0:0: Audio: aac, 44100 Hz, stereo, fltp, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (flac -> aac)
Press [q] to stop, [?] for help
size=    2770kB time=00:02:52.50 bitrate= 131.5kbits/s
video:0kB audio:2719kB subtitle:0 global headers:0kB muxing overhead 1.867920%

результат

$ ffmpeg -i foo.flac -i bar.aac    
Input #0, flac, from 'foo.flac':
  Duration: 00:02:52.48, bitrate: 446 kb/s
Input #1, aac, from 'bar.aac':
  Duration: 00:02:49.29, bitrate: 134 kb/s

Могу ли я изменить свою команду так, чтобы продолжительность ввода и вывода совпадала?

1 ответ1

5

«Сырой» файл AAC не содержит информации о содержимом файла. Когда вы включите всю информацию отладки, вы увидите, что время измеряется в зависимости от битрейта при импорте файлов aac:

[aac @ 0xa82ba40] Estimating duration from bitrate, this may be inaccurate

Но когда вы упаковываете свой файл aac, например, в контейнер MPEG-4, все необходимое содержимое сохраняется в контейнере. Попробуйте закодировать ваш аудиофайл flac в aac и скомпоновать его в контейнер .m4a, используя эти параметры, и посмотрите, что произойдет, если вы снова импортируете файл .m4a:

ffmpeg -i foo.flac -t 00:02:52.48 -c:aac -strict -2 bar.m4a

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .