我有一个视频文件,并且我在近3年前将视频信息转储到ffmpeg的txt文件中。音频采样格式s16p,ffmpeg或音频编解码器错误?
...
Stream #0:1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16, 256 kb/s
Stream #0:2[0x1c1]: Audio: mp2, 48000 Hz, stereo, s16, 256 kb/s
但是我发现,当我使用的更新ffprobe(ffprobe版本N-78046-g46f67f4版权所有(C)2007-2016 FFmpeg的开发者)的格式改变。
...
Stream #0:1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 256 kb/s
Stream #0:2[0x1c1]: Audio: mp2, 48000 Hz, stereo, s16p, 256 kb/s
对于相同的视频,其示例格式更改为s16p。
我实现了一个简单的使用ffmpeg的视频播放器。它可以在3年前播放视频,但在更改ffmpeg后无法输出正确的pcm流。我花了很多时间,终于发现音频应该是s16而不是s16p。解码后的音频流的作品后,我打电话avcodec_decode_audio4之前增加了行,
audio_codec_ctx->sample_fmt = AV_SAMPLE_FMT_S16
,但它只是一个黑客。有没有人遇到过这个问题?如何使ffmpeg正确工作?任何暗示是赞赏。谢谢!
请参阅http://stackoverflow.com/q/18888986/5726027 – Mulvya
我知道s16和s16p之间的区别。我的问题是关于ffmpeg用新旧版本输出不同的音频信息。我的测试视频是s16,但新的ffmpeg说它是s16p。 – Arton
ffplay可以很好地播放视频,所以我认为界面可能会发生很大变化,我会跟踪ffplay来找出根本原因。 – Arton