簡體   English   中英

ffmpeg-X264編碼--BGRA到AVFrame(ffmpeg),反之亦然? 對於IOS

[英]ffmpeg-X264 encode --BGRA to AVFrame(ffmpeg) and viceversa? for IOS

使用Objective c在IOS(iphone / ipod / ipad)中進行視頻處理。 我正在使用AVFoundation Framework捕獲視頻。 我想使用ffmpeg-libx264對這些視頻幀進行編碼/解碼。 我已經為ios編譯了ffmpeg-x264 lib。 我從AVFoundation獲得了kCVPixelFormatType_32BGRA。

我的問題是
1.How轉換kCVPixelFormatType_32BGRAAVFrame使用avcodec_encode_video的e節點?

2.如何將avframe從avcodec_decode_video2轉換為kCVPixelFormatType_32BGRA @解碼端?

請幫助我開始上述過程,或者為工作教程提供路徑。謝謝。

如果您嘗試使用FFMpeg,則需要使用kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange而不是kCVPixelFormatType_32BGRA,然后可以將其推入AVFrame。 您可能還希望將從iOS相機( YUVNV12 )獲得的內容轉換為YUV420P,以便可以在非iOS的其他設備上接收它。 如果您僅使用iOS設備,而這就是您所關心的,則可以跳過顏色轉換的這一步,只需將其打包到AVFrame中即可。

由於您已經將其轉換為YUV格式,因此可以只使用CVPixelBufferGetBaseAddressOfPlane(buf,0)並對該地址進行編碼。

一旦你解碼圖像,你需要從YUV420P改變顏色來BGRA。 如果您在編碼之前沒有正確地交換顏色,則只需將YUVNV12更改為BGRA。

希望這個對你有幫助。 您可以在線找到合適的顏色轉換算法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM