使用libyuv進行視頻格式轉換的時候注意事項


libyuv源碼:https://github.com/lemenkov/libyuv

https://github.com/lemenkov/libyuv.git

使用cmak直接構建vs2013或者其他項目然后編譯;

再使用libyuv進行格式轉換的時候要清楚明白libyuv接口每個參數的意義!

比如:

int ConvertToI420(const uint8_t* sample,
                  size_t sample_size,
                  uint8_t* dst_y,
                  int dst_stride_y,
                  uint8_t* dst_u,
                  int dst_stride_u,
                  uint8_t* dst_v,
                  int dst_stride_v,
                  int crop_x,
                  int crop_y,
                  int src_width,
                  int src_height,
                  int crop_width,
                  int crop_height,
                  enum RotationMode rotation,
                  uint32_t fourcc);

或者:

int I420ToRGB24(const uint8_t* src_y,
                int src_stride_y,
                const uint8_t* src_u,
                int src_stride_u,
                const uint8_t* src_v,
                int src_stride_v,
                uint8_t* dst_rgb24,
                int dst_stride_rgb24,
                int width,
                int height);
dst_stride_rgb24 這個參數的意思是rgb數據的"步長" 而不是 rgb數據的大小!
src_stride_y 這個是yuv數據中y的“步長” 實際參數就是視頻數據的寬度!
dst_stride_u 和
dst_stride_v 實際的參數是 視頻數據的 寬度/2 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM