2013-05-29 3 views
1

У меня возникли проблемы с аудиодорожками, закодированными в ffmpeg. Мое закодированное видео содержит идентификатор для звуковой дорожки, выделяемый из MediaInfo:Как выбрать ffmpeg video mp3 audio version id?

Я использую CODEC_ID_MP3 в guess_format контейнер «мы» для QuickTime

Audio 
ID          : 2 
Format         : MPEG Audio 
Format version       : Version 2 
Format profile       : Layer 3 
Codec ID         : .mp3 
Duration         : 2s 916ms 
Bit rate mode       : Constant 
Bit rate         : 128 Kbps 
Channel(s)        : 1 channel 
Sampling rate       : 16.0 KHz 
Compression mode       : Lossy 
Stream size        : 45.3 KiB (2%) 
Language         : English 

Это не распознается на codecless установке ванильных окон 7, только играли по K-Lite Codec libmad

Я заметил, что еще один тестовый файл содержит аналогичный mp3 трек и играет медиаплеера OK:

Audio 
ID          : 2 
Format         : MPEG Audio 
Format version       : Version 1 
Format profile       : Layer 3 
Mode          : Joint stereo 
Mode extension       : MS Stereo 
Codec ID         : 6B 
Duration         : 1mn 9s 
Bit rate mode       : Constant 
Bit rate         : 320 Kbps 
Channel(s)        : 2 channels 
Sampling rate       : 44.1 KHz 
Compression mode       : Lossy 
Stream size        : 2.67 MiB (38%) 
Writing library       : LAME3.98 

Разница, которую я заметил, - это номер версии формата и Идентификатор кода, который является версией 2 из вывода ffmpeg - я не мог найти эту версию в исходных файлах ffmpeg, поэтому мой вопрос: есть ли способ повлиять на идентификатор версии формата и установить код кодека, как в выше воспроизводимом видео?

ответ

0

мне пришлось взломать FFMPEG источники, чтобы изменить кодек ID в одном я нуждался в

+1

...... И как !? –

0

Version 1 поддерживает только частоты дискретизации 32 кГц, 44,1 кГц и 48 кГц. Для 16 кГц необходима версия 2, или вы могли бы ресэмплировать до 32 кГц (-ar 32k), если вам нужна версия 1.

При необходимости можно переопределить кодек идентификатор с -atagид-strict unofficial, если вы делаете что-то противное к стандарту и хотите, чтобы ffmpeg не беспокоился об этом).