2013-06-27 50 views
6

Tôi cần phát triển một ứng dụng có khả năng nhận luồng RTSP. Tôi đã cố gắng tìm các giải pháp/hướng dẫn trên Internet trong cả ngày, nhưng không thành công. Tôi đã đọc rất nhiều về việc sử dụng FFMPEG hoặc Live555 (nhiều FFMPEG hơn, tôi cũng đọc rằng Live555 không cần thiết khi sử dụng phiên bản FFMPEG mới nhất), nhưng không có nơi nào tôi nhìn nó được mô tả dưới dạng tôi có thể hiểu được, khi tôi tìm thấy câu hỏi stackoverflow các câu trả lời đã được thực sự ngắn và tôi không thể tìm ra những gì họ đã cố gắng để giải thích. Vì vậy, bây giờ tôi cần phải tự hỏi mình. tôi đã sử dụng "Homebrew" để tải về và cài đặt FFMPEG, bây giờ khi tôi nhìn vào dir của tôi/usr/local/ tôi có thể thấy điều này, các tập tin cài đặt được chứa trong thư mục con của "Cellar" Cellar dirRTSP Truyền trực tuyến trên iOS 6 với Xcode 4.6.1

Tôi cũng đã cố gắng để xem các dự án này: RTSPPlay by Mooncatventureskxmovie by kolyvan.

Tôi không thực sự tìm ra cách làm việc với các dự án này, Tài liệu không xác định và "âm u". Vâng, khi tôi cố gắng biên dịch các dự án này, kxmovie thất bại với các lỗi giống như "thiếu avformat.h", error missing avformat.h Tôi đã thêm các dylib từ dự án usr/local/cellar/ffmpeg/1.2.1/lib vào dự án nhưng có vẻ như đây không phải là phương pháp đúng. Gần như cùng một vấn đề với RTSPPlay xcodeprj, nó trả lại lỗi rằng "Entitlements.plist" bị thiếu, sau khi xóa liên kết đến tệp đó hoàn toàn, tôi nhận được hơn 99 lỗi Apple Mach-O Linker, thành thực mà tôi không hiểu tại sao.

Tôi cũng muốn thử Live555 nhưng tôi không thể xem qua tất cả các tệp khó hiểu và khó hiểu này, tôi không thể giám sát tài liệu và cách xây dựng thư viện cho iphoneos (tôi đọc nó là cách dễ nhất để nhận RTSP Stream nhưng nó là cùng một đống các tập tin khó hiểu như các dự án khác đã có)

Có thể nếu ai đó đã thử với các dự án này hoặc phát triển một ứng dụng có thể giúp tôi với mã nguồn của họ hoặc nếu ai đó nhìn thấy tất cả nội dung của FFMPEG/Homebrew làm cho dir của anh ta/cô ấy có thể có thể giải thích cho tôi làm thế nào để sử dụng nó, mà có lẽ sẽ giúp tôi và tất cả các nhà phát triển tuyệt vọng khác đang tìm kiếm một giải pháp.

Chỉ cần chỉnh sửa một chút: Tôi đang cố gắng nhận luồng video được giải mã RTSP H.264.

Cảm ơn trước, Maurice Arikoglu. (Nếu bạn cần bất kỳ loại mã nguồn, Links, ảnh chụp màn hình vv xin vui lòng cho tôi biết)

+0

có lẽ không kiểm tra các diễn đàn này nhiều như tôi nên, trong bản demo nhỏ của chúng tôi, bạn không cần entitlement.plist, là cần thiết trong các phiên bản Xcode cũ cũng loại bỏ arm7s arch và biên dịch cho iPhone phát hành này không hoạt động trên trình mô phỏng và chỉ dành cho iPhone. chúng tôi cũng hỗ trợ thông qua Facebook nhóm dev ứng dụng –

+0

chúng tôi cũng có một số hướng dẫn ở đây www.streammore.tv –

Trả lời

2

Đối với những ai đang tìm kiếm một việc chơi Thư viện RTSP đã xem Durfu's Mooncat Fork tôi đã tìm thấy trên mạng, nó là làm việc hoàn toàn tốt trên iOS 8. Có một mã mẫu bao gồm, nếu bạn đấu tranh với việc thực hiện tôi có thể giúp bạn.

1

tôi đã kiểm tra rất nhiều những dự án mà bạn đã đề cập, và có kinh nghiệm về những cũng ..

Bạn có thể sử dụng ffmpeg thư viện để làm cho một khách hàng trực tuyến rtsp, như ffmpeg hỗ trợ giao thức rtsp ... Nhưng có một vấn đề quan trọng mà tôi đã thấy trong các bài kiểm tra của tôi rằng giao thức rtsp của ffmpeg có một số vấn đề quan trọng khi sử dụng lớp truyền tải UDP để truyền ... với phiên bản mới nhất (2.01) nhiều gói RTP đang giảm trong quá trình phát trực tuyến, vì vậy, hình ảnh trở nên ... xem nhanh ...

Đối với dự án live555, thư viện này hoạt động tốt với cả giao thức UDP và TCP khi truyền luồng rtsp .. Nhưng ffmpeg mạnh mẽ/có nhiều khả năng hơn live555.

Nếu bạn quyết định sử dụng ffmpeg sau đó, về cơ bản, bạn nên làm theo các bước dưới đây,

  1. tạo ra một kết nối - avformat_open_input
  2. tìm codec âm thanh/video - avcodec_find_decoder
  3. mở audio/video codec - avcodec_open2
  4. đọc các gói được mã hóa từ luồng tệp/mạng trong vòng lặp - av_read_frame A. a. giải mã các gói âm thanh - avcodec_decode_audio4 b. lấp đầy bộ đệm âm thanh với khung audiounit/audioqueue B. a. giải mã các gói video - avcodec_decode_video2 b. chuyển đổi hình ảnh YUV để RGB hình ảnh - sws_scale hoặc OpenGLES shaders

chúc may mắn ...

+0

có thể bạn có thể đi sâu hơn với lời giải thích của bạn? Nếu bạn có thể giải thích cho tôi điều này thông qua Hướng dẫn từng bước, đó sẽ là lời cảm ơn tuyệt vời! – Maurice

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