Tôi đang cố gắng để có được hàm av_seek_frame() để đi đến một vị trí byte tôi chỉ định. Tôi đang thực hiện một cơ chế tìm kiếm khung chính xác cho ứng dụng của mình và cách tôi xem nó, tôi sẽ quét toàn bộ tệp video và lưu trữ các vị trí byte cho mỗi khung hình chính trong một cấu trúc. Tôi tìm ra nơi để có được vị trí byte hiện tại: AVPacket.pos. bây giờ tôi kiểm tra vị trí này với av_seek_frame
như thế này:vấn đề: FFMPEG tìm kiếm với av_seek_frame sử dụng vị trí byte
av_seek_frame(pFormatCtx, videoStream, 110285594, AVSEEK_FLAG_BYTE);
Tuy nhiên, điều này dường như không làm điều đúng, khi tôi gọi av_read_frame
, nó chỉ bắt đầu với khung 23. Nếu tôi không tìm kiếm, nó bắt đầu lúc khung 1.
Có phải vấn đề vì bạn đang cố gắng tìm một khung không phải là khung chính? – dmazzoni
Xin chào Dmazzoni, tôi không đảm bảo vị trí là Khung hình chính. Tôi có thể thêm vào nó, rằng nó là một video h264. –