2016-08-03 184 views
0

我想記錄,編碼,並最終在Android(使用API​​ 16)與MediaCodec和Mp4Parser(封裝到.mp4)的組合上創建短片。使用Android的MediaCodec + mp4parser進行編碼時,播放速度如何?

除了.mp4的持續時間,它總是3秒長,並且運行速度大約是「正確」速度的兩倍,所有的工作都很好。

  • 編碼器的輸入是84幀(相隔100毫秒)。
  • 最後一幀設置'流結束'標誌。
  • 我設置的顯示時間對每一幀queueInputBuffer

我試圖調整每一個可以想象的參數 - 但似乎沒有任何有所作爲 - 電影固定爲3秒長 - 和始終扮演着太快速。

那麼管理播放seepd?如何以'天然'的速度生成電影?

回答

0

我想到了:當用mp4parser封裝(如果您的目標是API < 18,則需要),您需要在mp4parser的API中設置速度。如果您沒有使用Android的內置複用器(僅適用於API18),您提供給queueInputBuffer的演示時間顯然沒有區別。

我無意中發現在github this問題,這表示以下是必需的:

new H264TrackImpl(new FileDataSourceImpl(rawDataFile), "eng", 100, 10); 
  • 最後兩個參數(時間刻度和frameTick)設置播放速度爲「noraml」。
+0

我現在可以確認當您使用MediaMuxer時,演示時間DO會影響mp4文件的播放速度。 – FuzzyAmi

相關問題