2013-03-19 43 views
11

Câu hỏi này có vẻ hơi phức tạp hoặc mơ hồ, nhưng tôi sẽ cố gắng làm cho rõ ràng nhất có thể. Tôi đã làm rất nhiều Googling và dành nhiều thời gian nhưng không tìm thấy bất cứ điều gì có liên quan cho các cửa sổ.Hiển thị hai video với nhau rồi xuất ra dưới dạng video được hợp nhất trên một màn hình

Tôi muốn phát hai video trên một màn hình. Một là toàn màn hình trong nền và một trên đầu trang của nó trong một cửa sổ nhỏ hoặc chiều rộng nhỏ/chiều cao ở góc bên phải. Sau đó, tôi muốn một đầu ra bao gồm cả hai video chơi cùng nhau trên một màn hình duy nhất.

Vì vậy, về cơ bản, một lớp phủ video khác và sau đó tôi muốn luồng đó được phát dưới dạng đầu ra để người dùng có thể phát luồng đó sau đó.

Tôi không yêu cầu bạn viết toàn bộ mã, chỉ cần cho tôi biết phải làm gì hoặc cách thực hiện hoặc công cụ hoặc SDK của bên thứ ba mà tôi phải sử dụng để thực hiện điều đó.

cập nhật: Đã thử rất nhiều giải pháp.

1. Xuggler - không hỗ trợ Android.

2. JavaCV hoặc JJMPEG - không thể tìm thấy bất kỳ hướng dẫn nào đề xuất cách thực hiện?

Hiện đang tìm kiếm FFMPEG- đã tìm kiếm trong một thời gian dài nhưng không thể tìm thấy bất kỳ hướng dẫn nào đề xuất cách mã hóa để thực hiện. Tôi tìm thấy cách dòng lệnh để làm thế nào để sửa chữa nó. Vì vậy, bất kỳ ai cũng có thể đề xuất hoặc chỉ dẫn hướng dẫn của FFMPEG hoặc nói cách khác với

+1

bị kẹt trong vấn đề này trong một thời gian dài, cố gắng sử dụng ffmpeg trong cửa sổ. nhưng không có kiến ​​thức mạnh về c/C++. và cũng không thể lấy mã trên google. –

+0

Tôi cũng đã cố gắng FFMpeg, và cùng một vấn đề do thiếu kiến ​​thức, có cách nào chúng ta có thể sửa nó bằng java .. – Anil

+0

Nếu bạn có thể làm PIP (Picture In Picture) thì tôi có một giải pháp đơn giản cho u. – Varun

Trả lời

1

Tôi sẽ bắt đầu với JavaCV. Nó khá tốt và linh hoạt. Nó sẽ cho phép bạn lấy khung, tổng hợp chúng và viết chúng trở lại một tập tin. Sử dụng các lớp FFmpegFrameGrabber và Recorder. Các thành phần có thể được thực hiện bằng tay.

Phần còn lại của câu trả lời phụ thuộc vào vài điều:

  • làm bạn muốn đọc từ một tập tin/mem/url?
  • bạn có muốn lưu vào một tệp/mem/url không?
  • bạn có cần xử lý thời gian thực không?
  • bạn có cần gì hơn hình ảnh đơn giản trong ảnh không?
+0

cảm ơn bạn đã trả lời rất nhanh, nhưng bây giờ tôi muốn đọc hai tập tin video và sau đó hiển thị sau đó với nhau và nhận được dòng đó như là một đầu ra .. BTW hiện nó hoạt động trong môi trường cửa sổ .. – Anil

+1

Vì vậy, JavaCV là con đường để đi. – Zielony

+1

@Zielony, bạn có thể chỉ ra bất kỳ hướng dẫn nào không? –

-2

ffmpeg là một dự án rất tích cực, rất nhiều thay đổi và phát hành mọi lúc.

Bạn nên xem xét dự án Xuggler, điều này cung cấp một API Java cho những gì bạn muốn làm, và chúng có tích hợp chặt chẽ với ffmpeg.

http://www.xuggle.com/xuggler/

Nếu bạn chọn để đi xuống con đường Runtime.exec(), chủ đề Red5 này nên có ích:

http://www.nabble.com/java-call-ffmpeg-ts15886850.html

+0

bạn có biết rằng Xuggler thậm chí không hỗ trợ Android. :( –

0

Bạn có thể sử dụng OpenGL để làm các trick. Tuy nhiên, xin lưu ý rằng bạn sẽ cần phải thực hiện các bước, một bước kết xuất video đầu tiên trong FBO và sau đó hiển thị video thứ hai, sử dụng FBO dưới dạng TEXTURE0 và video thứ hai là EXTERNAL_TEXTURE.

Pha trộn và tất cả những thứ bạn muốn sẽ được thực hiện bởi OpengL.

Bạn có thể kiểm tra mã nguồn ở đây: Using SurfaceTexture in Android và một số thông tin quan trọng ở đây: Android OpenGL combination of SurfaceTexture (external image) and ordinary texture

Điều duy nhất tôi không chắc chắn là những gì sẽ xảy ra khi hai trường hợp của MediaPlayer đang chạy song song. Tôi đoán nó không phải là một vấn đề.

Các vấn đề liên quan