Tôi hiện đang cố gắng giải mã video bằng cuda. Tôi có mẫu cuda gọi là cudaDecodeD3D9
. Mẫu này sử dụng một phương thức có tên là cuvidCreateVideoSource
, có một con trỏ tệp đến video nguồn. Có cách nào để có được Cuda để tải video từ bộ nhớ/socket/stream?Giải mã video trong Cuda bằng cách sử dụng ổ cắm/bộ nhớ thay vì một tệp
7
A
Trả lời
8
Tắt, tôi không thể sử dụng phương thức cuvidCreateVideoSource
, nhưng thay vào đó, tôi có thể cấp từng khung dữ liệu trực tiếp cho trình phân tích cú pháp video cuda bằng cách gọi cuvidParseVideoData
.
Dưới đây là ví dụ về việc đọc một khung hình từ một tệp và cho nó vào trình phân tích cú pháp cuda. Các tập tin được tạo ra bởi tôi bằng cách viết kích thước của mỗi khung vào tập tin, tiếp theo là dữ liệu khung. Tệp có thể dễ dàng được thay thế bằng cách đọc từ ổ cắm:
unsigned int size = 0u;
fread(&size, sizeof(unsigned char), sizeof(unsigned int), _file);
unsigned char *buf = new unsigned char[size];
fread(buf, sizeof(unsigned char), size, _file);
CUVIDSOURCEDATAPACKET packet = {};
packet.payload_size = size;
packet.payload = buf;
cuvidParseVideoData(pCudaParser, &packet);
delete [] buf;
Các vấn đề liên quan
- 1. Sử dụng bộ nhớ liên tục trong mã CUDA
- 2. Ghi vào bộ nhớ đệm thay vì tệp bằng libjpeg?
- 3. Cách tách mã CUDA thành nhiều tệp
- 4. Giải mã âm thanh bằng cách sử dụng MediaStreamSource
- 5. Sử dụng openMP trong mã máy chủ cuda?
- 6. Mã hóa CUDA bằng C#?
- 7. cách sử dụng AVCaptureSession để đọc video từ một tệp?
- 8. Tạo PDF trong bộ nhớ thay vì tệp vật lý
- 9. Tác động của việc sử dụng write() thay vì gửi() khi ghi vào một ổ cắm
- 10. Thay đổi độ phân giải tệp video OpenCV
- 11. Giải mã bằng Python một chuỗi được mã hóa bằng cách sử dụng .NET
- 12. Sử dụng std :: vector trong mã thiết bị CUDA
- 13. Đọc các tệp chứng chỉ từ bộ nhớ thay vì tệp bằng OpenSSL
- 14. giải mã luồng tệp bằng UTF-8
- 15. Nivo Trượt bằng cách sử dụng DIV thay vì IMG
- 16. Cách sử dụng đa hình trong CUDA
- 17. làm thế nào để giải mã một connectionString trong một web.config bằng cách sử dụng regiis_asp.net?
- 18. Sử dụng MediaCodec và MediaExtractor để giải mã và mã hóa video
- 19. mở tệp tập lệnh trong trình chỉnh sửa Rstudio bằng mã thay vì "Tệp/Mở"
- 20. Cách sử dụng setOutlineProvider thay vì setOutline trong Lollipop
- 21. Cách nén bằng 7zip thay vì mã zip, mã thay đổi
- 22. Rò rỉ bộ nhớ bằng cách sử dụng socket.io
- 23. Làm thế nào để sử dụng bộ nhớ CUDA liên tục trong một cách dễ dàng lập trình?
- 24. Cách sử dụng SensorManager.getOrientation() thay vì TYPE_ORIENTATION
- 25. Giải nén và lưu tệp bằng cách sử dụng as3?
- 26. Sử dụng Rijndael để mã hóa/giải mã các tệp
- 27. Làm thế nào để gỡ lỗi mã CUDA bằng cách sử dụng Visual Studio 2008?
- 28. Zend Framework: URL mã hóa giải mã Apache thay vì chuyển URL được mã hóa?
- 29. Làm thế nào để thay đổi một dòng trong một tệp bằng cách sử dụng NAnt?
- 30. Làm cách nào để sử dụng giải mã video tăng tốc phần cứng trên Android?
Làm cách nào để bạn trích xuất khung và kích thước khung hình từ luồng ổ cắm? –
bạn nên tham khảo API bạn đang sử dụng để gửi và nhận dữ liệu socket. Nó không có gì để làm với Cuda Video, chỉ gửi và nhận dữ liệu cơ bản bằng cách sử dụng ổ cắm. – pauld