Một nền tảng nhỏ, tôi đã được giao nhiệm vụ sửa một vài lỗi "nhỏ" và duy trì giải pháp này để phát video qua mạng giữa hai phiên bản ứng dụng của chúng tôi. Giải pháp được viết bởi một người không còn ở đây nên có một số bí ẩn trong mã cũng như một số cạm bẫy thực sự thú vị. Giải pháp được viết bằng cách sử dụng ffmpeg với mã C++ được viết để bọc mã hóa/giải mã có liên quan cũng như một số mã trực tuyến. C++ này sau đó được bọc bằng SWIG sao cho nó có thể tương tác với C# và chuyển các khung hình video lên nơi chúng được hiển thị bằng cách sử dụng VideoRendererElement mà tồn tại trong một điều khiển WPF. Lý do chính là các frame được truyền bởi vì chúng ta có một số giao thức tùy chỉnh chúng ta cần gửi dữ liệu video và những dữ liệu được viết bằng C# để khung hình được truyền lên, chúng ta gói chúng vào gói của chúng ta và gửi chúng lên dây . Giải pháp này hoạt động và chúng tôi có thể truyền video bằng cách sử dụng giao thức tùy chỉnh của chúng tôi mặc dù nó là một cái gì đó của một cơn ác mộng để duy trì và làm việc với.Làm thế nào để mã hóa/giải mã video bằng C#?
Câu hỏi của tôi là có cách nào tốt hơn để thực hiện việc này? Tôi đang tìm cách để làm việc ở mức thấp hơn với dữ liệu video (trong C#) để tôi có thể lấy các khung hình video và gói chúng trong các gói riêng của chúng tôi và gửi chúng ra và có thể nhận và xây dựng lại video trên phía bên kia. ffmpeg có vẻ là giải pháp phổ biến nhưng tôi đã gặp rất nhiều vấn đề với nó và điều GPL/LGPL mà tôi nghĩ là một vấn đề.
Luồng cơ bản tôi muốn đạt được, tệp video -> mã hóa -> gói trong gói -> gửi qua dây trên giao thức X -> lấy dữ liệu video từ gói -> giải mã -> hiển thị/lưu vào đĩa
Tại sao LGPL là vấn đề với bạn? Ngay cả khi ứng dụng của bạn dành cho khách hàng thương mại, nó không phải là một vấn đề. –
Có thể trùng lặp: http://stackoverflow.com/questions/271003/anyone-know-of-a-set-of-c-bindings-for-ffmpeg –
Điều GPL/LGPL được đưa lên bởi một đồng nghiệp khác nhưng họ làm cho nó có vẻ như chúng tôi sẽ phá vỡ giấy phép với cách chúng tôi đang sử dụng ffmpeg và một số thư viện phụ thuộc của nó. Đối với các bài đăng trùng lặp tôi đang cố gắng để có được đi từ ffmpeg nếu có thể và sắc nét ffmpeg dường như không làm việc hoặc nó đã được hỗ trợ nữa. –