我有一個視頻文件,並且我在近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