2013-06-06 43 views
7

Tôi đang cố gắng xây dựng một ứng dụng Android có luồng RTSP và hiển thị âm thanh/video. Tôi đã sử dụng VideoView và vẫn nhận được sự chậm trễ từ 3 đến 10 giây từ thời gian thực. Tôi cần sự chậm trễ này dưới 3 giây.Android: Bất kỳ cách nào để giảm độ trễ/độ trễ của phương tiện trên VideoView/MediaPlayer?

Trên PC, tôi có thể thấy cùng luồng RTSP bằng VLC chỉ với độ trễ 1-2 giây. Làm thế nào tôi có thể sao chép điều này trên Android? Ngay cả khi tôi sử dụng các ứng dụng khác như MoboPlayer/RockPlayer, độ trễ vẫn là 3 đến 10 giây. (Nếu nó quan trọng, tôi đang kết nối với luồng RTSP không dây trên cả PC và Android)

Tôi đã bắt đầu xem xét sử dụng FFmpeg cho Android cũng như SDK Gstreamer dành cho Android làm phương án thay thế cho MediaPlayer, nhưng chúng ' lại cả hai khó khăn để làm việc với một người mới như bản thân mình và tôi đang chạy vào nhiều vấn đề.

Bất kỳ và tất cả thông tin sẽ được đánh giá rất nhiều!

+1

Bất kỳ ai? Tôi đang gặp vấn đề tương tự. – Scot

Trả lời

1

Đầu tiên tôi nghĩ rằng sự chậm trễ là do kích thước bộ đệm ban đầu không thể kiểm soát được trên phần cứng Android MediaPlayer. Điều này có thể được sửa bằng cách sử dụng trình phát media SW tùy chỉnh như FFMpeg (AVconv now) hoặc GStreamer. Nhưng nó sẽ làm bạn mất hiệu suất (phụ thuộc vào độ nén, độ phân giải, fps) và thời lượng pin của thiết bị.

Và tất nhiên phát triển bản địa bằng cách sử dụng khung công tác FFMpeg hoặc C/C++ tương tự là phức tạp và đòi hỏi nhiều thời gian và kinh nghiệm.

Tùy chọn khác: bạn có thể thử mới Android 4.1 Java API để truy cập bộ giải mã video và âm thanh. Và xây dựng trình phát RTSP của riêng bạn bằng cách sử dụng API này và một số mã để tải luồng video từ máy chủ RTSP (có thể một số thư viện Java đã tồn tại).

Android 4.1 Multimedia