FMUSER Truyền video và âm thanh không dây dễ dàng hơn!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Người Afrikaans
sq.fmuser.org -> Tiếng Albania
ar.fmuser.org -> tiếng Ả Rập
hy.fmuser.org -> Armenia
az.fmuser.org -> Azerbaijan
eu.fmuser.org -> Basque
be.fmuser.org -> Tiếng Belarus
bg.fmuser.org -> Tiếng Bulgaria
ca.fmuser.org -> Catalan
zh-CN.fmuser.org -> Tiếng Trung (Giản thể)
zh-TW.fmuser.org -> Trung Quốc (truyền thống)
hr.fmuser.org -> Tiếng Croatia
cs.fmuser.org -> Tiếng Séc
da.fmuser.org -> Đan Mạch
nl.fmuser.org -> Hà Lan
et.fmuser.org -> Tiếng Estonia
tl.fmuser.org -> Phi Luật Tân
fi.fmuser.org -> Phần Lan
fr.fmuser.org -> Pháp
gl.fmuser.org -> Galicia
ka.fmuser.org -> tiếng Georgia
de.fmuser.org -> Đức
el.fmuser.org -> Hy Lạp
ht.fmuser.org -> Tiếng Creole của Haiti
iw.fmuser.org -> Tiếng Do Thái
hi.fmuser.org -> Tiếng Hindi
hu.fmuser.org -> Hungary
is.fmuser.org -> tiếng Iceland
id.fmuser.org -> tiếng Indonesia
ga.fmuser.org -> Ailen
it.fmuser.org -> Ý
ja.fmuser.org -> Nhật Bản
ko.fmuser.org -> Hàn Quốc
lv.fmuser.org -> Tiếng Latvia
lt.fmuser.org -> Tiếng Litva
mk.fmuser.org -> Người Macedonian
ms.fmuser.org -> Mã Lai
mt.fmuser.org -> Maltese
no.fmuser.org -> Na Uy
fa.fmuser.org -> tiếng Ba Tư
pl.fmuser.org -> Tiếng Ba Lan
pt.fmuser.org -> tiếng Bồ Đào Nha
ro.fmuser.org -> Rumani
ru.fmuser.org -> tiếng Nga
sr.fmuser.org -> Tiếng Serbia
sk.fmuser.org -> Tiếng Slovak
sl.fmuser.org -> Tiếng Slovenia
es.fmuser.org -> tiếng Tây Ban Nha
sw.fmuser.org -> Tiếng Swahili
sv.fmuser.org -> Thụy Điển
th.fmuser.org -> Thái
tr.fmuser.org -> Thổ Nhĩ Kỳ
uk.fmuser.org -> Tiếng Ukraina
ur.fmuser.org -> Tiếng Urdu
vi.fmuser.org -> Tiếng việt
cy.fmuser.org -> tiếng Wales
yi.fmuser.org -> Yiddish
1 、 Phát triển truyền hình trực tiếp video trên thiết bị di động
Có thể thấy, từ PC đến di động ngày càng có nhiều ứng dụng phát sóng trực tuyến, và phát sóng di động bước vào giai đoạn bùng nổ chưa từng có. Tuy nhiên, đối với hầu hết các chương trình phát trực tiếp trên thiết bị di động, nó vẫn được thực hiện chủ yếu bởi các máy khách gốc, nhưng HTML5 cũng đóng một vai trò không thể thay thế trong đầu phát trực tiếp trên thiết bị di động, chẳng hạn như HTML5 Với ưu điểm là truyền nhanh và dễ phát hành, HTML5 cũng có thể phát trực tiếp video khi nó là quan trọng nhất.
Toàn bộ chương trình phát sóng trực tiếp có thể được chia thành những phần sau:
(1) Thiết bị đầu cuối ghi video: Nói chung, nó là một thiết bị đầu vào âm thanh và video máy tính hoặc một máy ảnh hoặc micrô ở thiết bị đầu cuối di động. Hiện tại, video trên điện thoại di động là phần chính.
(2) Trình phát video: nó có thể là trình phát trên máy tính, trình phát gốc trên điện thoại di động và nhãn video HTML5. Hiện tại, nó vẫn là người chơi bản địa chính trên điện thoại di động.
(3) Máy chủ video: nói chung, nó là một máy chủ nginx, được sử dụng để chấp nhận nguồn video do phía quay video cung cấp và cung cấp dịch vụ phát trực tuyến cho đầu phát lại video.
2 、 Quay video HTML5:
Để quay video HTML5, webrtc mạnh mẽ (giao tiếp thời gian thực WEB) là công nghệ hỗ trợ đàm thoại video hoặc thoại trong thời gian thực trong trình duyệt web. Điểm bất lợi là nó chỉ hỗ trợ tốt hơn trên PC chrome và mặt di động không lý tưởng.
Quy trình cơ bản để quay video bằng webrtc là:
Gọi window.navigator.webkitGetUserMedia (lấy dữ liệu video của camera PC của người dùng).
Chuyển đổi dữ liệu luồng video có được sang window.webkitRTCPeerConnection (một định dạng dữ liệu luồng video).
Sử dụng websocket để truyền dữ liệu luồng video đến máy chủ
Do nhiều phương thức cần phải có tiền tố trình duyệt, nhiều trình duyệt di động không hỗ trợ webrtc nên việc quay video thật vẫn do client (IOS, Android) thực hiện và hiệu quả sẽ tốt hơn.
3 、 HTML5 phát video trực tiếp:
Để phát lại video, bạn có thể sử dụng giao thức HLS (phát trực tiếp HTTP) để phát trực tiếp. Cả iOS và Android đều hỗ trợ giao thức này một cách tự nhiên. Nó rất đơn giản để cấu hình và sử dụng các thẻ video trực tiếp.
Đây là một mã đơn giản để phát video trực tiếp bằng video:
(1) giao thức HLS là gì:
Nói tóm lại, toàn bộ luồng được chia thành các tệp nhỏ, được tải xuống dựa trên HTTP. Chỉ một số được tải xuống cùng một lúc. Tệp đã đề cập trước đó của.M3u8 được giới thiệu trong HTML5 phát video trực tiếp dựa trên giao thức HLS, lưu trữ siêu dữ liệu của luồng video.
Mỗi tệp.M3u8 tương ứng với một số tệp TS, là dữ liệu để lưu trữ video thực. Tệp m3u8 chỉ lưu trữ thông tin cấu hình và đường dẫn liên quan của một số tệp TS. Khi video được phát, tệp.M3u8 sẽ tự động thay đổi. Nhãn video sẽ phân tích cú pháp tệp và tìm tệp TS tương ứng để phát. Vì vậy để tăng tốc độ, file.M3u8 sẽ được dùng để phân tích file và tìm ra file TS tương ứng để phát lại. Do đó, để tăng tốc độ, file.M3u8 sẽ được sử dụng để phân tích tệp và tìm ra tệp TS tương ứng để phát lại. Do đó, để tăng tốc Hãy đặt nó trên máy chủ web và tệp TS trên CDN.
Tệp.M3u8 thực sự là một tệp M3U được mã hóa bằng UTF-8. Tệp này không thể tự phát mà chỉ là tệp văn bản chứa thông tin phát lại.
(2) Quy trình yêu cầu HLS:
URL của yêu cầu HTTP m3u8.
Máy chủ trả về danh sách phát m3u8, được cập nhật theo thời gian thực. Nói chung, URL của 5 phân đoạn dữ liệu được cung cấp cùng một lúc.
Máy khách phân tích cú pháp danh sách phát m3u8, sau đó yêu cầu URL của từng phân đoạn để lấy luồng dữ liệu TS.
(3) Độ trễ phát sóng trực tiếp HLS:
Chúng tôi biết rằng giao thức HLS chia luồng trực tiếp thành một đoạn video nhỏ để tải xuống và phát. Vì vậy, giả sử rằng danh sách có 5 tệp TS, mỗi tệp TS chứa 5 giây nội dung video, thì độ trễ tổng thể là 25 giây. Vì khi bạn xem những video này thì host đã quay video và tải lên nên bị chậm là do vậy. Tất nhiên, độ dài danh sách và kích thước của một tệp TS có thể được rút ngắn để giảm độ trễ. Trong trường hợp cực đoan, độ dài danh sách có thể giảm xuống 1 và thời lượng TS là 1 giây. Tuy nhiên, điều này sẽ làm tăng số lượng yêu cầu và tăng áp lực cho máy chủ. Khi tốc độ mạng chậm, bộ đệm sẽ được tạo ra nhiều hơn. Do đó, thời gian TS mà Apple khuyến nghị chính thức kéo dài trong 10s, vì vậy nó sẽ thay đổi rất nhiều về độ trễ 30s. Vì vậy, máy chủ nhận luồng, chuyển mã, lưu, cắt khối và sau đó phân phối nó cho máy khách. Đây là nguyên nhân sâu xa của sự chậm trễ.
Để biết thêm câu hỏi về sự chậm trễ, vui lòng tham khảo địa chỉ chính thức của Apple:
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html
Tuy nhiên, video trực tiếp HTML5 có một số lợi thế không thể thay thế:
① Giao tiếp tốt, dễ dàng chia sẻ và các thao tác khác.
② Nó có thể được phát hành động, có lợi cho việc lặp lại theo thời gian thực các yêu cầu của sản phẩm và khởi chạy nhanh chóng.
③ Không cần cài đặt ứng dụng, hãy mở trình duyệt trực tiếp.
4 、 Hệ điều hành dữ liệu âm thanh và video thu thập (ghi) iOS
Để thu nhận và ghi lại âm thanh và video, trước tiên, các khái niệm sau được làm rõ:
(1) Mã hóa video: mã hóa video đề cập đến cách một tệp ở định dạng video được chuyển đổi thành tệp định dạng video khác thông qua một công nghệ nén cụ thể. Video được quay bằng iPhone mà chúng tôi sử dụng phải được mã hóa, tải lên và giải mã trước khi có thể phát trong trình phát phía người dùng.
(2) Codec standard: các tiêu chuẩn codec quan trọng nhất trong việc truyền dòng video bao gồm H.261, H.263 và H.264 của ITU, trong đó giao thức HLS hỗ trợ mã hóa định dạng H.264.
(3) Mã hóa âm thanh: tương tự như mã hóa video, luồng âm thanh gốc được mã hóa, tải lên, giải mã theo các tiêu chuẩn nhất định và phát trong trình phát. Tất nhiên, âm thanh cũng có nhiều tiêu chuẩn mã hóa, chẳng hạn như mã PCM, mã wma, mã AAC,… phương pháp mã hóa âm thanh được hỗ trợ bởi giao thức HLS của chúng tôi là mã AAC.
Việc thu thập dữ liệu video và âm thanh chủ yếu được chia thành các bước sau:
(1) thu thập dữ liệu video và âm thanh bằng cách sử dụng máy ảnh trên IOS
(2) Trong IOS, luồng dữ liệu âm thanh và video gốc có thể được thu thập bằng avcapturesession và avcapturedevice.
(3) Video được mã hóa bằng h264 và âm thanh được mã hóa AAC. Trong IOS, đã có sẵn các thư viện mã hóa đóng gói để thực hiện mã hóa âm thanh và video.
(4) Dữ liệu âm thanh và video sau khi mã hóa được tập hợp và niêm phong;
(5) Thiết lập kết nối RTMP và đẩy nó lên máy chủ.
Sau đây là quy trình cụ thể của việc thu thập dữ liệu âm thanh và video:
(1) về RTMP:
Giao thức nhắn tin thời gian thực (RTMP) là một bộ giao thức video trực tiếp được phát triển bởi Macromedia và hiện thuộc về adobe. Như với HLS, nó có thể được sử dụng để phát video. Sự khác biệt là RTMP không thể phát trong trình duyệt IOS dựa trên flash, nhưng nó tốt hơn trong thời gian thực so với HLS. Vì vậy, giao thức này thường được sử dụng để tải lên luồng video, tức là luồng video được đẩy đến máy chủ.
(2) dòng chảy đẩy
Cái gọi là phát trực tuyến đề cập đến việc gửi dữ liệu âm thanh và video mà chúng tôi đã mã hóa đến máy chủ luồng video. Trong mã IOS, truyền trực tuyến RTMP thường được sử dụng. Librtmp IOS, một thư viện của bên thứ ba, có thể được sử dụng để phát trực tuyến. Librtmp đóng gói một số API cốt lõi để người dùng gọi. Ví dụ: đẩy API, v.v., định cấu hình địa chỉ máy chủ, sau đó đẩy luồng video chuyển mã đến máy chủ.
Vậy làm thế nào để xây dựng một máy chủ phát trực tuyến?
Máy chủ phát trực tuyến đơn giản được xây dựng. Vì luồng video chúng tôi tải lên dựa trên giao thức RTMP nên máy chủ phải hỗ trợ RTMP. Có thể thực hiện theo các bước sau:
(1) Cài đặt máy chủ nginx.
(2) Phần mở rộng RTMP của nginx đã được cài đặt. Định cấu hình tệp conf cho nginx
(3) Khởi động lại nginx và ghi địa chỉ phát trực tuyến của RTMP dưới dạng rtmp: // ip: 1935 / hls / mystream, trong đó HLS_ Path đại diện cho địa chỉ của các tệp.M3u8 và TS được tạo, HLS_ Fragment đại diện cho độ dài của lát cắt và dòng mystream đại diện cho một thể hiện. Tên tệp được tạo có thể được đặt bởi chính nó.
5 、 Tương tác của người dùng trong chương trình phát sóng trực tiếp:
Đối với tương tác của người dùng trong phát sóng trực tiếp, nó có thể được chia đại khái thành:
tặng quà.
Để bình luận hoặc chơi
Đối với việc gửi quà, DOM và CSS3 có thể được sử dụng để nhận ra logic của việc gửi quà và một số hoạt ảnh quà tặng đặc biệt trên HTML5. Những khó khăn về kỹ thuật không lớn lắm.
Đối với một đập, phức tạp hơn một chút, bạn có thể cần phải chú ý những điều sau:
Hiệu suất thời gian thực của đường đạn có thể được gửi và nhận trong thời gian thực bằng webscock và kết xuất.
Đối với các trình duyệt không hỗ trợ websocket, chúng chỉ có thể bị giảm xuống mức gửi yêu cầu bỏ phiếu dài hoặc gửi bộ hẹn giờ giao diện người dùng để có được cửa sổ bật lên theo thời gian thực.
Hoạt ảnh và phát hiện va chạm (tức là không có chồng chéo), v.v. trong kết xuất
|
Nhập email để nhận bất ngờ
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Người Afrikaans
sq.fmuser.org -> Tiếng Albania
ar.fmuser.org -> tiếng Ả Rập
hy.fmuser.org -> Armenia
az.fmuser.org -> Azerbaijan
eu.fmuser.org -> Basque
be.fmuser.org -> Tiếng Belarus
bg.fmuser.org -> Tiếng Bulgaria
ca.fmuser.org -> Catalan
zh-CN.fmuser.org -> Tiếng Trung (Giản thể)
zh-TW.fmuser.org -> Trung Quốc (truyền thống)
hr.fmuser.org -> Tiếng Croatia
cs.fmuser.org -> Tiếng Séc
da.fmuser.org -> Đan Mạch
nl.fmuser.org -> Hà Lan
et.fmuser.org -> Tiếng Estonia
tl.fmuser.org -> Phi Luật Tân
fi.fmuser.org -> Phần Lan
fr.fmuser.org -> Pháp
gl.fmuser.org -> Galicia
ka.fmuser.org -> tiếng Georgia
de.fmuser.org -> Đức
el.fmuser.org -> Hy Lạp
ht.fmuser.org -> Tiếng Creole của Haiti
iw.fmuser.org -> Tiếng Do Thái
hi.fmuser.org -> Tiếng Hindi
hu.fmuser.org -> Hungary
is.fmuser.org -> tiếng Iceland
id.fmuser.org -> tiếng Indonesia
ga.fmuser.org -> Ailen
it.fmuser.org -> Ý
ja.fmuser.org -> Nhật Bản
ko.fmuser.org -> Hàn Quốc
lv.fmuser.org -> Tiếng Latvia
lt.fmuser.org -> Tiếng Litva
mk.fmuser.org -> Người Macedonian
ms.fmuser.org -> Mã Lai
mt.fmuser.org -> Maltese
no.fmuser.org -> Na Uy
fa.fmuser.org -> tiếng Ba Tư
pl.fmuser.org -> Tiếng Ba Lan
pt.fmuser.org -> tiếng Bồ Đào Nha
ro.fmuser.org -> Rumani
ru.fmuser.org -> tiếng Nga
sr.fmuser.org -> Tiếng Serbia
sk.fmuser.org -> Tiếng Slovak
sl.fmuser.org -> Tiếng Slovenia
es.fmuser.org -> tiếng Tây Ban Nha
sw.fmuser.org -> Tiếng Swahili
sv.fmuser.org -> Thụy Điển
th.fmuser.org -> Thái
tr.fmuser.org -> Thổ Nhĩ Kỳ
uk.fmuser.org -> Tiếng Ukraina
ur.fmuser.org -> Tiếng Urdu
vi.fmuser.org -> Tiếng việt
cy.fmuser.org -> tiếng Wales
yi.fmuser.org -> Yiddish
FMUSER Truyền video và âm thanh không dây dễ dàng hơn!
Liên hệ
Địa Chỉ:
Phòng số 305 Tòa nhà HuiLan Số 273 đường Huanpu Quảng Châu Trung Quốc 510620
Categories
Đăng ký bản tin