Saya menggunakan media streaming Live555 untuk aplikasi yang mencatat dan mengalirkan kembali aliran RTSP yang berasal dari kamera IP. Untuk itu, saya menggunakan openRTSP untuk merekam dan live555 server proxy untuk streaming ulang aliran kamera. Untuk beberapa kamera kita menghadapi masalah aneh dimana dalam perekaman kamera terjadi dengan sukses, namun server proxy live555 tidak dapat menghasilkan arus baru untuk aliran kamera yang sama (tidak ada indikasi kegagalan pada keluaran keluaran verbose, Namun url rtsp yang dihasilkan oleh server proxy tidak dapat didekode oleh klien rtsp). Karena saya tidak tahu tentang rincian server proxy live555, saya tidak dapat mengatasi masalah ini. Aku mencoba streaming streaming kamera yang sama menggunakan VLC dan itu bekerja dengan baik. Apa yang mungkin salah dengan ini? Saya di sini dengan melampirkan output verbose untuk referensi. E :. LiveproxyServergtlive555ProxyServer. exe - V rtsp: 10.17.10.67ch0unicastfirststream LIVE555 Proxy Server (perpustakaan media Streaming LIVE555 versi 2012.05.17) Membuka koneksi ke 10.17.10.67, port 554. RTSP stream, proxy stream rtsp: 10.17.10.67ch0unicastfirststream Mainkan streaming ini menggunakan URL rtsp: 10.17.1.150proxyStream (Kami menggunakan port 8000 untuk penerusan RTSP-over-HTTP opsional.) Sambungan jarak jauh dibuka Permintaan pengiriman: DESCRIBE rtsp: 10.17.10.67ch0unicastfirststream RTSP1.0 Agen Pengguna: ProxyRTSPClient (Streaming Media LIVE555 v2012. 05.17) Menerima 716 byte baru data respon. Menerima tanggapan DESCRIBE yang lengkap: Saya dan Saurabh sedang mengerjakan proyek yang sama. Kami mencoba menganalisis apa yang terjadi dengan menggunakan testRTSPClient seperti yang disarankan oleh Anda dan inilah dump verbose dari testRTSPClient: Membuka koneksi ke 10.17.1.111, port 8554. koneksi jarak jauh dibuka Permintaan pengiriman: DESCRIBE rtsp: 10.17.1.111: 8554proxyStream RTSP1 .0 msWin32DebugTestPrograms. exe (Live555 Streaming Media v2012.06.26) Menerima 101 byte baru data tanggapan. Menerima tanggapan DESCRIBE yang lengkap: RTSP1.0 404 File Tidak Ditemukan, Atau Dalam Format Salah Tanggal: Thu, Jul 05 2012 09:23:54 GMT URL: rtsp: 10.17.1.111: 8554proxyStream: Gagal mendapatkan deskripsi SDP: 40 4 File Tidak Ditemukan, Atau Dalam Format Salah URL: rtsp: 10.17.1.111: 8554proxyStream: Menutup aliran. Tekan sembarang tombol untuk melanjutkan Tampaknya server proxy live555 tidak dapat memberikan tanggapan atas permintaan DESCRIBE yang dikirim dari klien (testRTSPClient). Apa alasannya? Saya dengan ini melampirkan server live555 proxy verbose dump juga untuk referensi. Live555 Proxy Server (Live555 Streaming Media library version 2012.06.26) Membuka koneksi ke 10.17.10.67, port 554. RTSP stream, proxy stream rtsp: 10.17.10.67ch0unicastfirststream Mainkan streaming ini dengan menggunakan URL rtsp: 10.17.1.111: 8554proxyStream (Kami Gunakan port 80 untuk penerusan RTSP-over-HTTP opsional.) Sambungan jarak jauh dibuka Permintaan pengiriman: DESCRIBE rtsp: 10.17.10.67ch0unicastfirststream RTSP1.0 Agen Pengguna: ProxyRTSPClient (Streaming Media LIVE555 v2012.06.26) Menerima 718 byte baru data tanggapan. Menerima tanggapan DESCRIBE yang lengkap: Tanggal: Kamis, 05 Juli 2012 09:19:08 GMT 2012-07-06 05:58:23 UTC Terima kasih atas tanggapan Anda. Saya punya info debug dump yang Anda sarankan. Silahkan cari log di bawah ini. LOG INFO-START LIVE555 Proxy Server (Live555 Streaming Media library version 2012.06.26) Membuka koneksi ke 10.17.10.56, port 554. RTSP stream, proxy stream rtsp: 10.17.10.56ch0unicastfirststream Mainkan streaming ini dengan menggunakan URL rtsp: 10.17.1.111 : 8554proxyStream (Kami menggunakan port 80 untuk penerusan RTSP-over-HTTP opsional.). Koneksi jarak jauh dibuka Permintaan pengiriman: DESCRIBE rtsp: 10.17.10.56ch0unicastfirststreamRTSP1.0 CSeq: 2 User-Agent: ProxyRTSPClient (Streaming Media LIVE555 v2012.06.26) Terima: applicationsdp Menerima 716 byte baru data tanggapan. Menerima tanggapan DESCRIBE yang lengkap: RTSP1.0 200 OK CSeq: 2 Tanggal: Fri, Jul 06 2012 11:05:59 GMT Isi-Basis: rtsp: 10.17.10.56ch0unicastfirststream Content-Type: applicationsdp Isi-Length: 540 v0 o - 1341318888742256 1 IN IP4 10.17.10.56 sSession aliran pertama iFirst Codec Stream t0 0 atool: LIVE555 Streaming Media v2007.08.03 atype: broadcast acontrol: arange: npt0- ax-qt-text-nam: Sesi aliran pertama ax-qt-text - inf: Pertama Codec Stream mvideo 0 RTPAVP 96 cIN IP4 0.0.0.0 artpmap: 96 MP4V-ES90000 afmtp: 96 profil-level-id5config000001B005000001B509000001000000012000847A98 28A02240A31F acontrol: track1 mmetadata 0 RTPAVP 97 cIN IP4 0.0.0.0 artpmap: 97 METADATA64000 acontrol: track2 ProxyServerMediaSessionrtsp : 10.17.10.56ch0unicastfirststream menambahkan ProxyServerMediaSubsession baru untuk trek RTPvideoMP4V-ES ProxyServerMediaSessionrtsp: 10.17.10.56ch0unicastfirststream menambahkan ProxyServerMediaSubsession baru untuk trek RTPmetadataMETADATA Mengirim permintaan: PILIHAN rtsp: 10.17.10.56ch0unicast FirststreamRTSP1.0 CSeq: 3 User-Agent: ProxyRTSPClient (Streaming Media LIVE555 v2012.06.26) Menerima 122 byte baru data tanggapan. Menerima respons OPTIONS yang lengkap: RTSP1.0 200 OK CSeq: 3 Tanggal: Jum, 06 Jul 2012 11:06:33 GMT Umum: OPSI, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE menerima () sambungan dari 10.17.1.111 Liveness Indikasi dari klien pada 10.17.1.111 Indikasi daya dari klien pada 10.17.1.111 RTSPClientSession02060068 :: handleRequestBytes () membaca 161 byte baru: DESCRIBE rt sp: 10.17.1.111: 8554proxyStream RTSP1.0 CSeq: 2 User-Agent: testRTSPClient. exe (LIVE555 Streaming Media v2012.05.11) Terima: applicationsdp parseRTSPRequestString () berhasil, mengembalikan cmdName DESCRIBE, urlPreSuffix, urlSuffix proxyStream, CSeq 2, Content-Length 0, dengan 0 byte mengikuti pesannya. ProxyServerMediaSubsessionMP4V-ES :: createNewStreamSource (session id 0) Dimulai: ProxyServerMediaSubsessionMP4V-ES ProxyServerMediaSubsessionMP4V-ES :: createNewRTPSink () ProxyServerMediaSubsessionMP4V-ES :: closeStreamSource () ProxyServerMediaSubsessionMETADATA :: createNewStreamSource (session id 0) Dimulai: Respons server proxy ProxyServerMediaSubsessionMETADATA: RTSP1.0 404 File Tidak Ditemukan, Atau Dalam Format Salah CSeq: 2 Tanggal: Fri, Jul 06 2012 05:38:16 GMT Indikasi daya dari klien pada 10.17.1.111 RTSPClientSession02060068 :: handleRequestBytes () baca 0 byte baru (dari 10000) t erminating connection Permintaan pengiriman: PILIHAN rtsp: 10.17.10.56ch0unicastfirststreamRTSP1.0 CSeq: 4 Agen Pengguna: ProxyRTSPClient (Streaming Media LIVE555 v2012.06.26) Menerima 122 byte baru data tanggapan. Menerima respons OPTIONS yang lengkap: RTSP1.0 200 OK CSeq: 4 Tanggal: Jum, 06 Juli 2012 11:07:10 GMT Umum: OPSI, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE Membuka koneksi ke 10.17.10.56, port 554. . Sambungan remote dibuka Permintaan pengiriman: PILIHAN rtsp: 10.17.10.56ch0unicastfirststreamRTSP1.0 CSeq: 5 Agen Pengguna: ProxyRTSPClient (Streaming Media LIVE555 v2012.06.26) Menerima 122 byte baru data tanggapan. Menerima respons OPTIONS yang lengkap: RTSP1.0 200 OK CSeq: 5 Tanggal: Jum, 06 Jul 2012 11:08:09 GMT Umum: OPSI, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE Saya telah memverifikasi info Debug dari RTSPServer. cpp Dilakukan Terus mencetak untuk kamera kerja lainnya (Ini mencetak indikasi Liveness dari klien di 10.17.1.111 ..) Pada log saat ini juga sekali cetaknya indikasi Liveness dari klien pada 10.17.1.111. Dan dalam testRTSPClient memberikan log berikut yang mirip dengan koneksi Pembukaan LOG sebelumnya ke 10.17.1.111, port 8554. Koneksi remote dibuka Permintaan pengiriman: DESCRIBE rtsp: 10.17.1.111: 8554proxyStream RTSP1.0 CSeq: 2 User-Agent: testRTSPClient. exe (Streaming Media LIVE555 v2012.05.11) Terima: applicationsdp Menerima 101 data byte baru dari data tanggapan. Menerima tanggapan DESCRIBE yang lengkap: RTSP1.0 404 File Tidak Ditemukan, Atau Dalam Format Salah CSeq: 2 Tanggal: Fri, Jul 06 2012 05:53:08 GMT Posting oleh Ross Finlayson Ini sangat aneh. Saya tidak mengerti mengapa server proxy merespons 404 File Tidak Ditemukan. Untuk permintaan oleh klien 1 Edit liveMediaRTSPServer. cpp, dan tambahkan baris define DEBUG 1 ke awal file. 2 Kompilasi ulang perpustakaan liveMedia. 3 Di perpustakaan proxyServer, buat kembali biner live555ProxyServer. 4 Jalankan live555ProxyServer - V ltback-end-rtsp-URLgt sekali lagi, dan coba hubungkan dengannya dari klien. Kirimkan output debugging dari server proxy. Ross Finlayson Live Networks, Inc. live555 daftar milis live-devel. live555mailmanlistinfolive-devel Terima kasih atas dukungan Anda yang cepat. Ini bekerja sekarang. Kami juga memperhatikan jenis yang sama, pengaturan yang sama dengan kamera yang berbeda memiliki metadata yang berbeda. Dikirim oleh Ross Finlayson OK, saya tahu masalahnya - ini disebabkan oleh track metadata yang tidak standar di aliran back-end. Karena lagu ini tidak standar, kami tidak bisa menguasainya, tapi itu tidak seharusnya bisa menghalangi lagu video standar lainnya agar tidak di-proxy. Sekarang saya telah menginstal versi baru 2012.07.06 dari perangkat lunak Streaming Media LIVE555 yang seharusnya memperbaiki masalah ini. Sekarang, klien front-end Anda seharusnya bisa menerima trek video OK. Terima kasih telah menyampaikan masalah ini kepada kami. Ross Finlayson Live Networks, Inc. live555 daftar milis live-devel. live555mailmanlistinfolive-devel 2012-07-14 05:22:32 UTC Kami akan berterima kasih jika Anda dapat menjelaskan apa yang Anda maksud dengan metadata non-standar karena kami mencoba Untuk melaporkan masalah yang sama ke vendor kamera kami. Menunggu tanggapanmu Terima kasih. Pada Sabtu, 7 Juli 2012 pukul 10:32, Kiran P. Thakkar Posting oleh Kiran P. Thakkar Dear Ross, Terimakasih atas dukungan anda yang cepat. Ini bekerja sekarang. Kami juga memperhatikan jenis yang sama, pengaturan yang sama dengan kamera yang berbeda memiliki metadata yang berbeda. Salam Kiran Post oleh Ross Finlayson OK, saya menemukan masalahnya - ini disebabkan oleh track metadata yang tidak standar di aliran back-end. Karena lagu ini tidak standar, kami tidak bisa menguasainya, tapi itu tidak seharusnya bisa menghalangi lagu video standar lainnya agar tidak di-proxy. Sekarang saya telah menginstal versi baru 2012.07.06 dari perangkat lunak Streaming Media LIVE555 yang seharusnya memperbaiki masalah ini. Sekarang, klien front-end Anda seharusnya bisa menerima trek video OK. Terima kasih telah menyampaikan masalah ini kepada kami. Ross Finlayson Live Networks, Inc. live555 daftar milis live-devel list. live555mailmanlistinfolive-devel daftar mailing list live-devels. live555mailmanlistinfolive-devel 2012-07-17 00:05:31 UTCIm mencoba melakukan streaming video melalui tcp menggunakan mplayer di windows MinGW shell dan itu tergantung pada live555 streaming media library. Langkah yang saya lakukan adalah: download media streaming live555 src setiap file. mak di srclive (saya menggunakan nmake f. mak melalui command line, karena VS2010 saya tidak mengenali file. mak.) Proses bangunan berhasil dan hasilnya adalah. File obj Masalahnya adalah mplayer membutuhkan file. a untuk dibuat dan build tidak menciptakannya. Apakah saya benar-benar membutuhkan file. a Jika demikian, bagaimana cara mendapatkannya? Apakah ada metode membangun lainnya yang dapat saya gunakan untuk menyelesaikannya. The LIVE555 TM Proxy Server Server Proxy LIVE555 adalah server RTEC unicast - yang dibangun dari perangkat lunak Streaming Media LIVE555 - Yang bertindak sebagai proxy untuk satu atau lebih back-end unicast atau multicast RTSPRTP streams (yaitu dilayani oleh server lain). Fitur utama dari server proxy adalah bahwa ia membaca setiap aliran back-end hanya satu kali, terlepas dari berapa banyak klien terpisah yang streaming dari server proxy. Ini membuat server proxy ideal, misalnya untuk streaming dari kamera video RTSP (yang mungkin tidak dapat menangani lebih dari satu koneksi sekaligus). Operasi dasar The LIVE555 Proxy Server adalah aplikasi command-line (yaitu konsol). Cara termudah untuk menjalankannya adalah mengetikkan: di mana lturlgt adalah URL RTSP (yaitu dimulai dengan rtsp :) dari aliran balik (misalnya dari kamera video). Setelah memulai, server akan menampilkan rtsp sendiri: URL untuk aliran proxy. Klien RTSP kemudian dapat menggunakan URL ini untuk dimainkan (yaitu menerima) aliran proxy. Server dapat bertindak sebagai proxy untuk banyak aliran back-end - tidak hanya satu. Jika Anda memasukkan lebih dari satu rtsp: URL pada baris perintah, maka server akan - setelah memulai - menampilkan rtsp: URL untuk proxy masing-masing. (Tentu saja, Anda harus melakukan proxy beberapa aliran hanya jika Anda memiliki bandwidth jaringan yang cukup untuk menerima semuanya.) Verbose (debugging) output Untuk menampilkan output tambahan, menunjukkan operasi dasar server, tambahkan opsi - v, sebelum rtsp : URL Untuk menampilkan lebih banyak output - termasuk pertukaran protokol RTSP antara server proxy dan masing-masing server back-end - gunakan opsi V (yaitu huruf besar) V). (Jika Anda mengalami masalah dengan server proxy, sebaiknya gunakan opsi - V untuk mencoba mencari tahu apa yang salah.) Streaming kembali melalui TCP Secara default, server proxy akan meminta untuk menerima setiap aliran back-end melalui UDP (yaitu menerima paket RTP dan RTCP sebagai datagram UDP). Terkadang, server back-end mungkin berada di belakang firewall yang memblokir paket UDP. Untuk mengatasinya, Anda bisa menggunakan opsi - t untuk meminta agar setiap server RTSP back-end mengalirkan paket data RTP dan RTCP melalui koneksi TCP-nya, daripada menggunakan paket UDP. (Perhatikan bahwa tidak semua server RTSP mendukung streaming TCP, dan TCP tidak dapat digunakan untuk menerima aliran multicast.) Anda harus menggunakan opsi ini hanya jika Anda tidak dapat menerima paket UDP, karena streaming melalui TCP dapat menyebabkan data yang masuk menjadi terlalu tertunda. . Sebagai alternatif, Anda dapat menggunakan opsi - T lms-port-numbergt untuk meminta agar setiap arus back-end dikirim (menggunakan TCP) melalui terowongan RTSP-over-HTTP, menggunakan nomor port HTTP yang ditentukan. RTSP-over-HTTP tunneling bisa berguna jika Anda berada di belakang firewall HTTP-only. (Perhatikan, bagaimanapun, bahwa tidak semua back end RTSP server akan mendukung ini.) Catatan: Opsi - t dan - T lthttp-port-numbergt hanya berlaku untuk aliran back-end (s). Mereka tidak mempengaruhi arus front-end dari server proxy ke (berpotensi ganda) RTSP klien. Aliran tersebut dapat melewati UDP atau TCP, tergantung pada permintaan setiap klien. Aliran akses yang dikontrol proxy Beberapa server RTSP kelas akhir memerlukan otentikasi pengguna (melalui nama pengguna dan kata sandi) sebelum Anda dapat mengakses alirannya. Jika Anda menambahkan pilihan ltusernamegt ltpasswordgt ke server proxy, maka akan menggunakan pasangan ltpasswordgt ltusernamegt ini - jika perlu - untuk mengakses setiap aliran back-end. (Untuk menentukan kata sandi kosong, gunakan untuk ltpasswordgt.) Sebagai alternatif, Anda bisa mencoba memasukkan nama pengguna dan kata sandi di dalam rtsp: URL, seperti: rtsp: ltusernamegt: ltpasswordgt lthostnamegt: ltetc. gt. (Ini tidak disarankan, karena - dalam kasus ini - kata kunci akan dikirim secara jelas melalui Internet. Selain itu, tidak semua server back-end akan menerima jenis URL ini.) Perhatikan bahwa juga memungkinkan untuk menyediakan Kontrol akses ke server proxy itu sendiri - yaitu dari klien RTSP front-end. (Ini, bagaimanapun, tidak dilakukan dari command line sebagai gantinya, hal itu dilakukan dengan memodifikasi kode sumber dari server proxy. Perhatikan kode yang dilampirkan di live555ProxyServer. cpp. Menentukan port server RTSP Secara default, aplikasi server ini mencoba untuk Gunakan salah satu nomor port server RTSP standar (554 dan 8554). Sebagai alternatif, Anda dapat menggunakan opsi - p ltrtsp-port-numbergt untuk menentukan bahwa server mencoba menggunakan nomor port yang ditentukan untuk RTSP. (Jika port ini tidak dapat digunakan Digunakan, maka akan mencoba salah satu nomor port standar, seperti biasa.) Meng proxy satu atau lebih aliran back-end yang diiklankan Aplikasi server ini juga dapat mengatur proxy untuk aliran back-end yang diiklankan menggunakan perintah REGISTER RTSP. Iklan - yang menentukan rtsp: URL aliran back-end - dapat dikirim baik oleh server back-end itu sendiri, atau oleh beberapa aplikasi pihak ketiga.) Untuk memberikan aplikasi server fungsi ini, mulailah dengan - R Opsi command-line. (Jika Anda menggunakan opsi ini, maka Anda mungkin tidak memasukkan rtsp: URL pada baris perintah.) Aliran proxy kemudian dapat diakses - dari server proxy - menggunakan rtsp: URL yang akan diumumkan di konsol. Sebagai fitur khusus - jika parameter reuseconnection ditetapkan dalam perintah REGISTER Transport: header - server proxy bisa menggunakan kembali koneksi TCP yang menerima perintah REGISTER. Ini bisa berguna jika server back-end stream berada di belakang firewall atau NAT, namun server proxy dijalankan di Internet publik. (Dalam kasus ini, Anda mungkin juga ingin menggunakan opsi - t, untuk meminta server back-end juga mengirim paket RTPRTCP-nya pada koneksi TCP yang sama ini.) REGISTER adalah perintah RTSP khusus, yang dikembangkan oleh Live Networks, Inc. Saat ini tidak standar, namun dijelaskan dalam Draf Internet IETF. Jika Anda menggunakan opsi - R, maka Anda juga harus menggunakan pilihan ltusernamegt ltpasswordgt, yang menentukan nama pengguna dan kata sandi yang harus digunakan untuk mengotentikasi perintah REGISTER yang masuk. (Perhatikan perbedaan antara perintah - u, yang menentukan username dan password yang akan digunakan untuk mengakses stream back-end, dan perintah - U, yang menentukan username dan password yang akan digunakan untuk mengotentikasi perintah REGISTER yang masuk.) Aplikasi RegisterRTSPStream - termasuk dalam direktori testProgs - dapat digunakan untuk mendaftarkan aliran back-end dengan server proxy. Kode sumber, dan dukungan Karena aplikasi ini ditujukan untuk profesional jaringan komputer daripada pengguna akhir biasa, kami tidak membuatnya tersedia sebagai biner pra-bangun. Sebagai gantinya, Anda harus membangunnya sendiri, dari kode sumber. Untuk melakukannya, Anda harus mendownload dan membangun perangkat lunak Streaming Media LIVE555. Perhatikan bahwa aplikasi Proxy Server LIVE555 disertakan dalam subdirektori proxyServer. Dukungan untuk Proxy Server LIVE555 (dan sisanya dari kode Media Streaming LIVE555) disediakan melalui milis pengembang kami: live-devellists. live555. Perhatikan bahwa Anda harus terlebih dahulu berlangganan ke milis sebelum dapat mempostingnya tolong juga baca FAQ sebelum posting ke milis. Live555 dan logo Live Networks adalah merek dagang dari Live Networks, Inc. LIVE555 Streaming Media Kode ini membentuk satu set perpustakaan C untuk streaming multimedia, menggunakan protokol standar terbuka (RTPRTCP, RTSP, SIP). Perpustakaan ini - yang dapat dikompilasi untuk Unix (termasuk Linux dan Mac OS X), Windows, dan QNX (dan sistem yang sesuai dengan POSIX) - dapat digunakan untuk membangun aplikasi streaming. Perpustakaan sudah digunakan untuk mengimplementasikan aplikasi seperti Live555 Media Server dan Live555 Proxy Server (aplikasi server RTSP), dan vobStreamer (untuk streaming konten DVD menggunakan RTPRTCPRTSP). Perpustakaan juga dapat digunakan untuk melakukan streaming, penerimaan, dan proses video MPEG, H.265, H.264, H.263, DV atau JPEG, dan beberapa codec audio. Mereka dapat dengan mudah diperluas untuk mendukung codec tambahan (audio andor video), dan juga dapat digunakan untuk membangun klien dan server RTSP atau SIP dasar, dan telah digunakan untuk menambahkan dukungan streaming ke aplikasi media player yang ada, seperti VLC dan MPlayer. (Untuk beberapa contoh spesifik bagaimana perpustakaan ini dapat digunakan, lihat program uji di bawah ini.) Kode sumber Kode sumber proyek tersedia - sebagai file. tar. gz - di sini. Lihat di bawah untuk mendapatkan petunjuk bagaimana membangunnya. (Catatan: Untuk menggunakan perangkat lunak ini, Anda harus menyadari bagaimana lisensi itu, dan kewajiban Anda berdasarkan lisensi ini.) Mailing list Ada daftar mailing pengembang. Hidup-devellists. live555 Pengguna (atau calon pengguna) perpustakaan didorong untuk bergabung dengan milis (volume rendah) ini, dan untuk meninjau arsip milis. (Anda juga dapat mencari arsip ini menggunakan Google, dengan menambahkan situs: lists. live555 ke kueri penelusuran Anda.) Sebelum mengeposkan ke milis untuk pertama kalinya, baca Tanya Jawab, untuk memeriksa apakah pertanyaan Anda telah terjawab. Saran utama untuk mendukung perpustakaan ini adalah milis live-devellists. live555 yang dijelaskan di atas. (Perhatikan bahwa Anda harus terlebih dahulu berlangganan ke milis sebelum Anda dapat mempostingnya.) Apakah Anda berencana untuk menerapkan RTP (andor RTSP) Alih-alih menulis penerapan Anda sendiri dari nol, pertimbangkan untuk menggunakan pustaka ini. Mereka telah digunakan di banyak aplikasi berbasis RTP dunia nyata, dan sangat sesuai untuk digunakan dalam sistem embedded. Kode tersebut mencakup implementasi RTCP, dan dapat dengan mudah diperluas (via subclassing) untuk mendukung jenis muatan RTP baru. Membantu mendukung peningkatan dan perluasan perangkat lunak Streaming Media LIVE555: Proyek yang Didanai LIVE555. Deskripsi Kode ini mencakup perpustakaan berikut, masing-masing dengan subdirektorinya sendiri: UsageEnvironment Kelas UsageEnvironment and TaskScheduler digunakan untuk menjadwalkan acara yang ditangguhkan, untuk menugaskan penangan untuk kejadian baca asinkron, dan untuk mengeluarkan pesan kesalahan. Juga, kelas HashTable mendefinisikan antarmuka ke tabel hash generik, yang digunakan oleh kode lainnya. Ini semua adalah kelas dasar abstrak yang harus subclass untuk digunakan dalam implementasi. Subklas ini dapat memanfaatkan sifat lingkungan tertentu di mana program akan berjalan - mis. GUI andor lingkungan scripting nya. Kelas di perpustakaan ini mengenkapsulasi antarmuka jaringan dan soket. Secara khusus, kelas Groupsock mengenkapsulasi soket untuk mengirim (andor receive) datagram multicast. Perpustakaan ini mendefinisikan hirarki kelas - berakar pada kelas Menengah - untuk berbagai jenis media streaming dan codec. BasicUsageEnvironment Perpustakaan ini mendefinisikan satu implementasi konkret (yaitu subclass) kelas UsageEnvironment, untuk penggunaan aplikasi konsol sederhana. Membaca kejadian dan operasi tertunda ditangani menggunakan loop pilih (). Direktori ini menerapkan beberapa program sederhana yang menggunakan BasicUsageEnvironment untuk mendemonstrasikan bagaimana mengembangkan aplikasi menggunakan pustaka ini. RTSP client testRTSPClient adalah program baris perintah yang menunjukkan kepada Anda bagaimana cara membuka dan menerima aliran media yang ditentukan oleh URL RTSP - yaitu URL yang dimulai dengan rtsp: Dalam aplikasi demonstrasi ini, tidak ada yang dilakukan dengan data audiovideo yang diterima. Anda bisa, bagaimanapun, menggunakan dan menyesuaikan kode ini dengan aplikasi Anda sendiri untuk (misalnya) memecahkan kode dan memutar data yang diterima. OpenRTSP mirip dengan testRTSPClient, namun memiliki lebih banyak fitur. Ini adalah program baris perintah yang - tidak seperti testRTSPClient - dimaksudkan untuk digunakan sebagai aplikasi lengkap dan berfitur lengkap (bukan kode yang digunakan dalam aplikasi lain). Untuk informasi lebih lanjut tentang openRTSP - termasuk banyak opsi baris perintah - lihat dokumentasi online. RTSP server testOnDemandRTSPServer membuat server RTSP yang bisa streaming, via RTP unicast, dari berbagai jenis file media, sesuai permintaan. (Jenis media yang didukung meliputi: MPEG-1 atau 2 audio atau video (stream elementer), termasuk video MPEG-4 audio MP3 (streaming elementer) Video H.264 (stream elementer) Video H.265 (stream elementer) Program MPEG atau Transport Stream, termasuk file VOB audio video audio AMR DV audio WAV (PCM).) Server juga dapat melakukan streaming dari file Matroska atau WebM (dengan demultiplexing dan streaming trek di dalam file). Aliran Transport MPEG juga dapat dialirkan melalui UDP mentah, jika diminta - mis. Dengan kotak set-top. Aplikasi server ini juga menunjukkan bagaimana cara mengirimkan - melalui RTSP - Stream MPEG Transport yang sampai di server sebagai aliran multicast UDP (raw-UDP atau RTPUDP) atau unicast stream. Secara khusus, sudah diatur, secara default, untuk menerima masukan dari aplikasi demo testMPEG2TransportStreamer. SIP client playSIP adalah program command-line (mirip dengan openRTSP) yang membuat panggilan ke sesi SIP (menggunakan sip: URL), dan kemudian (opsional) mencatat aliran media masuk ke file. Program uji audio MP3 testMP3Streamer berulang kali dibaca dari file audio MP3 (bernama test. mp3), dan mengalirkannya, menggunakan RTP, ke grup multicast 239.255.42.42, port 6666 (dengan RTCP menggunakan port 6667). Program ini juga memiliki server RTSP (opsional) built-in. TestMP3Receiver melakukan sebaliknya: Membaca aliran MP3RTP (dari groupport multicast yang sama), dan mengeluarkan stream MP3 yang dilarutkan ke stdout. Ini juga mengirimkan Laporan Penerimaan RTCP. Sebagai alternatif, aliran MP3RTP dapat dimainkan menggunakan salah satu alat ini. Program uji video MPEG testMPEG1or2VideoStreamer berulang kali membaca dari file video MPEG-1 atau 2 (bernama test. mpg), dan mengalirkannya, menggunakan RTP, ke grup multicast 239.255.42.42, port 8888 (dengan RTCP menggunakan port 8889). Program ini juga memiliki server RTSP (opsional) built-in. Secara default, file input diasumsikan sebagai Stream Elementary MPEG Video. Namun, jika itu adalah Stream Program MPEG, Anda juga bisa memasukkan filter demultiplexing untuk mengekstrak Stream Elementary Video. (Lihat testMPEG1or2VideoStreamer. cpp untuk detailnya.) Apel QuickTime Player dapat digunakan untuk menerima dan melihat video streaming ini (asalkan MPEG-1, bukan MPEG-2). Untuk menggunakan ini, minta QuickTime Player membuka file testMPEG1or2Video. sdp. (Jika server RTMP testMPEG1or2VideoStreamers telah diaktifkan, maka QuickTime Player juga dapat memutar streaming menggunakan rtsp: URL.) Media player Open Source VLC dan MPlayer juga dapat digunakan. RealNetworks RealPlayer juga bisa digunakan untuk memutar stream. (Versi terbaru direkomendasikan.) TestMPEG1or2VideoReceiver melakukan kebalikannya: Membaca aliran MPEG VideoRTP (dari groupport multicast yang sama), dan mengeluarkan stream video MPEG (SDN) yang dilarutkan ke stdout. Ini juga mengirimkan Laporan Penerimaan RTCP. TestMPEG4VideoStreamer berulang kali membaca dari file video Streaming MPEG-4 Elementary (bernama test. m4e), dan mengalirkannya menggunakan multicast RTP. Program ini juga memiliki server RTSP built-in. Apples QuickTime Player dapat digunakan untuk menerima dan memainkan streaming audio ini. Untuk menggunakan ini, mintalah pemain untuk membuka rtsp sesi: URL (yang programnya dicetak saat mulai streaming). Media player Open Source VLC dan MPlayer juga bisa digunakan. TestH264VideoStreamer berulang kali membaca dari file video Elementary Stream H.264 (bernama test.264), dan mengalirkannya menggunakan multicast RTP. Program ini juga memiliki server RTSP built-in. Apples QuickTime Player dapat digunakan untuk menerima dan memainkan streaming audio ini. Untuk menggunakan ini, mintalah pemain untuk membuka rtsp sesi: URL (yang programnya dicetak saat mulai streaming). Media player Open Source VLC dan MPlayer juga bisa digunakan. TestH265VideoStreamer berulang kali membaca dari file video Elementary Stream H.265 (bernama test.265), dan mengalirkannya menggunakan multicast RTP. Program ini juga memiliki server RTSP built-in. Program uji MPEG audiovideo (Program Stream) testMPEG1or2AudioVideoStreamer membaca file Stream MPEG-1 atau 2 Program (bernama test. mpg), mengekstrak dari aliran audio dan video Elementary Stream ini, dan mengalirkannya, menggunakan RTP, ke grup multicast 239.255. 42.42, port 66666667 (untuk streaming audio) dan 88888889 (untuk streaming video). Program ini juga memiliki server RTSP (opsional) built-in. Apples QuickTime Player dapat digunakan untuk menerima dan melihat video streaming ini (asalkan MPEG-1, bukan MPEG-2). Untuk menggunakan ini, minta QuickTime Player membuka file testMPEG1or2AudioVideo. sdp. (Jika server RTMP testMPEG1or2VideoStreamers telah diaktifkan, maka QuickTime Player juga dapat memutar streaming menggunakan rtsp: URL.) Media player Open Source VLC dan MPlayer juga dapat digunakan. TestMPEG1or2Splitter membaca file Stream MPEG-1 atau 2 Program (bernama in. mpg), dan mengekstrak ini dari sebuah audio dan video Elementary Stream. Kedua Aliran Dasar ini ditulis ke dalam file yang masing-masing disebut outaudio. mpg dan outvideo. mpg. MPEG audiovideo (Transport Stream) menguji program testMPEG2TransportStreamer membaca file Stream Stream MPEG (bernama test. ts), dan mengalirkannya, menggunakan RTP, ke grup multicast 239.255.42.42, port 1234 (dengan RTCP menggunakan port 1235). Program ini juga memiliki server RTSP (opsional) built-in. Media player Open Source VLC dapat digunakan untuk memutar stream ini. TestMPEG2TransportReceiver melakukan sebaliknya: Membaca aliran MPEG TransportRTP (dari groupport multicast yang sama), dan mengeluarkan aliran Stream Stream MPEG yang dilarutkan ke stdout. Ini juga mengirimkan Laporan Penerimaan RTCP. TestMPEG1or2ProgramToTransportStream membaca file Stream MPEG-1 atau 2 Program (bernama in. mpg), dan mengubahnya menjadi file Stream Stream MPEG yang setara, bernama out. ts. TestH264VideoToTransportStream membaca file Stream Elementary H.264 Video (dinamai in.264), dan mengubahnya menjadi file Stream Stream MPEG yang setara, bernama out. ts. TestH265VideoToTransportStream membaca file Stream Elementary H.265 Video (diberi nama in.265), dan mengubahnya menjadi file Stream Stream MPEG yang setara, bernama out. ts. Tes program tes audio PCWWAVAudioStreamer berbunyi dari file audio format WAV (dinamai test. wav), dan mengalirkan stream audio PCM tertutup melalui multicast IP, menggunakan server RTSP built-in. Program ini mendukung 8 atau 16 bit PCM stream, mono atau stereo, pada frekuensi sampling manapun. Apples QuickTime Player dapat digunakan untuk menerima dan memainkan streaming audio ini. Untuk menggunakan ini, mintalah pemain untuk membuka rtsp sesi: URL (yang programnya dicetak saat mulai streaming). Opsional, 16-bit PCM stream dapat dikonversi ke format u-lawak 8-bit sebelum streaming. (Lihat testWAVAudioStreamer. cpp untuk petunjuk tentang cara melakukannya.) Media player Open Source VLC dan MPlayer juga dapat digunakan. Tes program tes AMR testAMRAudioStreamer membaca dari file audio format AMR (bernama test. amr) - seperti yang didefinisikan dalam RFC 3267, bagian 5 - dan mengalirkan aliran audio tertutup melalui multicast IP, menggunakan server RTSP built-in. Apples QuickTime Player dapat digunakan untuk menerima dan memainkan streaming audio ini. Untuk menggunakan ini, mintalah pemain untuk membuka rtsp sesi: URL (yang programnya dicetak saat mulai streaming). Uji program uji video DVDVVideoStreamer berbunyi dari file video DV (bernama test. dv), dan mengalirkannya melalui multicast IP, menggunakan server RTSP built-in. Saat ini, kita tahu tidak ada klien media player yang tersedia secara luas yang dapat memainkan aliran ini. Matroska (atau Webm) uji program uji streamingMKVStreamer berbunyi dari file Matroska (atau Webm) (bernama test. mkv), dan mengalirkannya melalui IP multicast, menggunakan server RTSP built-in. Program pengujian streaming VOB (DVD) vobStreamer membaca satu atau lebih file. vob (mis. Dari DVD), mengekstrak aliran audio dan video, dan mentransmisikannya menggunakan multicast RTP. Dukungan untuk operasi pengeditan trik server pada file Stream MPEG Transport Aplikasi MPEG2TransportStreamIndexer dan testMPEG2TransportStreamTrickPlay Program uji coba Miscellaneous testRelay berulang kali membaca dari soket multicast UDP, dan mentransmisikan ulang (relay) setiap paket ke alamat (dan port multicast atau unicast) yang baru. TestReplicator mirip dengan testRelay. Kecuali bahwa ia mereplikasi arus input - menggunakan kelas FrameReplicator - dan mentransmisikan ulang satu aliran replika ke alamat dan port multicast atau unicast yang lain, sambil menulis aliran replika lainnya ke sebuah file. SapWatch membaca dan mencetak pengumuman SDPSAP yang dibuat pada direktori SDPSAP default (224.2.127.2549875) registerRTSPStream mengirimkan perintah RTSP REGISTER khusus ke klien RTSP (atau server proxy) yang diberikan, memintanya untuk melakukan streaming dari rtsp: URL yang diberikan. WindowsAudioInputDevice This is an implementation of the liveMedia librarys AudioInputDevice abstract class. This can be used by a Windows application to read PCM audio samples from an input device. (This project builds two libraries: libWindowsAudioInputDevicemixer. lib, which uses Windows built-in mixer, and libWindowsAudioInputDevicenoMixer. lib, which doesnt.) How to configure and build the code on Unix (including Linux, Mac OS X, QNX, and other Posix-compliant systems) The source code package can be found (as a. tar. gz file) here. Use tar - x and gunzip (or tar - xz, if available) to extract the package then cd to the live directory. Then run where ltos-platformgt is your target platform - e. g. linux or solaris - defined by a config. ltos-platformgt file. This will generate a Makefile in the live directory and each subdirectory. Then run make. If the make fails, you may need to make small modifications to the appropriate config. ltos-platformgt file, and then re-run genMakefiles ltos-platformgt . (E. g. you may need to add another - I ltdirgt flag to the COMPILEOPTS definition.) Some people (in particular, FreeBSD users) have reported that the GNU version of make - often called gmake - works better than their default, pre-installed version of make. (In particular, you should try using gmake if you encounter linking problems with the ar command.) If youre using gcc version 3.0 or greater: You may also wish to add the - Wno-deprecated flag to CPLUSPLUSFLAGS. If no config. ltos-platformgt file exists for your target platform, then try using one of the existing files as a template. If you wish, you can also install the headers, libraries, and applications by running make install. How to configure and build the code on Windows Unpack and extract the. tar. gz file (using an application such as WinZip). If the tools directory on your Windows machine is something other than c:Program FilesDevStudioVc, change the TOOLS32 line in the file win32config. In a command shell, cd to the live directory, and run This will generate - in each subdirectory - a. mak makefile suitable for use by (e. g.) Microsoft Visual Studio. Alternatively, if youre starting from a Unix machine, you can generate the Windows Makefiles by running (after - if necessary - changing the TOOLS32 line in the file win32config, as noted above). Then, copy the live directories and its subdirectories (in ASCII mode) to a Windows machine. To use these Makefiles from within Visual Studio, use the Open Workspace menu command, then (in the file selection dialog) for Files of type, choose Makefiles (.mak). Visual Studio should then prompt you, asking if you want to use this Makefile to set up a new project. Say OK. Note that you will need to build each of the UsageEnvironment, groupsock, liveMedia, and BasicUsageEnvironment projects first . before building testProgs. If you wish, you can build the WindowsAudioInputDevice project also. Doug Kosovic notes: Visual C 2003 no longer comes with the old IO Streams headers iostreams. h et al, or the corresponding library msvcirt. lib. So anybody trying to build the LIVE555 code with VC 2003 might find the following useful: A non-sourcecode modification workaround for VC 2003 is to copy the missing headers and msvcirt. lib from VC 2002. In file win32config add an extra - I switch to COMPILEOPTS to find the old headers and a - LIBPATH: switch to LINKOPTS0 to find msvcirt. lib. If youre using the Borland C compiler The instructions above assume that you use Microsoft Visual Studio (version 5 or greater) as your C development environment. If, however, you are using Borlands development tools, then the instructions above are amended as follows: Before running the genWindowsMakefiles. cmd script, edit it to replace each occurrence of win32config with win32config. Borland. After running genWindowsMakefiles, edit each of the new Makefiles by following these instructions. (Please read this before posting questions to the mailing list.) Source code license This code is open source, and is released under the LGPL. This allows you to use these libraries (via linking) inside closed-source products. It also allows you to make closed-source binary extensions to these libraries - for instance, to support proprietary media codecs that subclass the existing liveMedia class hierarchy. Nonetheless, we hope that subclass extensions of these libraries will also be developed under the LGPL, and contributed for inclusion here. We encourage developers to contribute to the development and enhancement of these libraries. Extend the liveMedia library to support even more media types andor codecs. Supply additional UsageEnvironment subclassed implementations - e. g. for use with scripted environments, such as Tcl, Python, or Perl. Expand the RTCP implementation to support more SDES items (other than just CNAME), and to more completely handle incoming RTCP packets. In places the code uses data types such as unsigned, where instead specific lengths (e. g. 32 bits) are required. The data types should be changed in each such case. Fix the groupsock implementation so that it could use IPv6 instead of IPv4. (At present, 4-byte addresses are hard-wired into the code in several places.) Switch to using ISO-conformant C headers (but in such a way that the code can remain portable across both Unix (using gcc) and Windows (using Visual C)). Implement network sockets (groupsocks) as liveMedia sources. This will make the code for RTP sources more consistent with the rest of the liveMedia library, allowing them to be FramedFilters. (This will make it possible to use synthetic network sockets - e. g. for debugging or simulation.) Add support for SRTP (secure RTP), and perhaps also RTSP-over-TLS. Some third-party applications Several third-party devices and applications have made use of the LIVE555 Streaming Media Software. Here is a list of some of them: RaspberrIPCam - a full HD IP Camera based on Raspberry Pi Network-enabled, RTP-streaming Security Cameras. from RVision The LMLM4 MPEG-4 audiovideo hardware encoder PCI board. from Linux Media Labs. WIS Technologies media encoders. (The wis-streamer server application - for Linux - can be used to stream from many of these encoders.) Elphel Network Video Cameras (with optional JPEG streaming over RTP ). The Cam. ly wireless security camera system uses openRTSP to archive recorded video. The VLC media player (uses the LIVE555 Streaming Media libraries for its RTSP client implementation). The MPlayer media player. Ralf Globischs Video Processing Project - a RTSP client DirectShow Filter Morgan RTP DirectShow TM Filters , from Morgan Multimedia Omnimeeting - a videoconferencing application Network-Integrated Multimedia Middleware (NMM) , from Saarland University ivrworx - a SIP IVR application - uses LIVE555 Streaming Media code for RTP mixing LiveMediaStreamer - an open source multimedia framework If you would like your product (or project) added to this list, please send email to the developers mailing list.
No comments:
Post a Comment