1

我在 ffmpeg 编码的视频文件音轨上遇到问题。我的编码视频包含从 mediainfo 中提取的音轨 ID:

我在guess_format“mov”容器中使用CODEC_ID_MP3进行快速操作

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

这在 windows 7 的 vanilla 无编解码器安装中无法识别,仅由 k-lite 编解码器 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

我注意到的区别在于格式版本号和编解码器 ID,这是来自 ffmpeg 输出的版本 2 - 我无法在 ffmpeg 源文件中找到这个版本设置,所以我的问题是 - 有没有办法影响这个格式版本标识符并设置上面可播放视频中的编解码器 ID?

4

2 回答 2

0

我必须破解 ffmpeg 源才能将编解码器 ID 更改为我需要的 ID

于 2013-06-05T17:41:10.607 回答
0

版本 1 仅支持 32 kHz、44.1 kHz 和 48 kHz 的采样频率。对于 16 kHz,您需要版本 2,或者如果您需要版本 1,您可以重新采样到 32 kHz ( -ar 32k)。

如有必要,您可以使用 id 覆盖编解码器 id -atag 并且-strict unofficial如果您正在做一些违反标准的事情并希望 ffmpeg 不被打扰)。

于 2013-06-06T23:40:14.490 回答