Tôi đang xây dựng một ứng dụng giải mã đơn giản bằng cách sử dụng API FFMPEG. Tôi biết có những giải pháp có sẵn trong OpenCV nhưng vì lý do cụ thể, tôi đang kiềm chế bản thân mình bằng cách sử dụng nó. Vì tôi rất mới với FFMPEG (và đối với cộng đồng này), tôi muốn biết nếu có bất kỳ sai lầm nào mà tôi có thể đã làm khi xây dựng FFMPEG.FFMPEG: ‘PIX_FMT_BGR24’ không được khai báo trong phạm vi này
Trình biên dịch: Tôi đang sử dụng gcc 5.3.0 để biên dịch và xây dựng.
Sau đây là các bước mà chúng tôi theo:
Tôi đã xây dựng thư viện FFMPEG sử dụng cấu hình sau:
./configure --prefix =/home/dep/ffmpeg/cài đặt/--pkg-config-cờ = - tĩnh enable-gpl --disable-yasm
lệnh biên dịch của tôi là cho các ứng dụng:
012.g ++ -std = C++ 11 -I/home/dep/ffmpeg/install/include/Queue.cpp Image.cpp CaptureFFMPEGFrame.cpp Object.cpp main.cpp -o main -L/home/dep/ffmpeg/cài đặt/lib -lavutil -lavcodec -lavformat -lavdevice -lavfilter -lswscale -lswresample -lpostproc -lpthread -lz -lrt -llzma -lbz2
Các lỗi tôi phải đối mặt là:
CaptureFFMPEGFrame.cpp:203:169: error: ‘PIX_FMT_BGR24’ was not declared in this scope
mpFrameSwsContext = sws_getContext(mpAVCodecContext->width, mpAVCodecContext->height, mpAVCodecContext->pix_fmt, mpAVCodecContext->width, mpAVCodecContext->height, PIX_FMT_BGR24, SWS_BICUBIC, NULL, NULL, NULL)
Nỗ lực và sự hiểu biết của tôi:
Từ hiểu biết của tôi, libavutil/pixfmt.h chứa định dạng pixel mà tôi đưa vào cùng với các lỗi khác và lỗi vẫn tồn tại. Bạn cũng có thể xem các thư viện tôi đã đưa vào cùng với ứng dụng của mình.
Kể từ khi chương trình của tôi là mã cpp, do đó tiêu đề của tôi đã được bao gồm sử dụng extern "C", ví dụ:
#include "libavcodec/avcodec.h"
Bất cứ điều gì tôi có thể đã bỏ lỡ?
Rất cám ơn.
Tại một số thời điểm nó được đổi tên thành 'AV_PIX_FMT_BGR24', có lẽ đó là vấn đề. –
Oh hoàn hảo! Điều đó hoạt động rất tốt, có vẻ như tôi đang theo tài liệu cũ (https://www.ffmpeg.org/doxygen/0.5/pixfmt_8h.html) – msz
Rất cám ơn Roman, tài liệu mới ở đây dành cho những độc giả khác: https: // www. ffmpeg.org/doxygen/2.5/pixfmt_8h.html – msz