2011-06-03 91 views
1

我只有h.264編碼的視頻流,我想製作mp4文件。我可以通過libavformat mux h264流m4(aac)沒有libx264?

/*找到的mp4 */

m_pOutputFormat = av_guess_format( 「MP4」,NULL,NULL)輸出格式;

if(!m_pOutputFormat)return FALSE; //找不到合適的輸出格式(mp4)。

關於這段代碼,我得到MPEG視頻編解碼器不是h264,我認爲這是因爲我建立ffmpeg沒有libx264。 (我不想用libx264構建ffmpeg許可證)

m_pOutputFormat-> video_codec = CODEC_ID_H264;

當我將其video_codec更改爲CODEC_ID_H264時,它可以正常工作(kmplayer)。但它不適用於iPod,QuickTime。

此代碼可能錯誤,因爲它無法更改codec_tag值(此變量具有const屬性)。


1.我怎樣才能獲得其他結果爲av_guess_format( 「MP4」,NULL,NULL)沒有重新編譯libav + libx264?

2.我怎樣才能讓MP4文件是否正確?

回答

0

我覺得你不需要libx264正確與H264流工作,因爲libx264是編碼器,我已經使用libav不libx264編譯H264包工作。它適用於從文件讀取數據包並將其寫入另一個文件。

至於調用av_guess_format您可以爲H264(視頻/ H264例如或任何其他)提供適當的MIME類型或乾脆放棄功能的另一短類型名稱。這必須是正確的:av_guess_format(「h264」,NULL,NULL)。 (目標-C):http://libav-users.943685.n4.nabble.com/Libavcodec-encoding-with-libx264-td3250373.html

相關問題