Professional Documents
Culture Documents
Video Streaming
Video Streaming
Đường truyền ra quốc tế rất kém, bắt buộc phải thuê máy chủ tại VN, làm sao có thể stream video dài dưới 15
phút, full HD, bảo mật và tiết kiệm chi phí ở VN?
Yêu cầu quan trọng khác là phải xem được trên smart phone iOS, android, desktop Mac, Windows, Linux.
Cách 2: nếu không đọc được manifest thì play video từ đầu đến cuối, các trunk sẽ lần lượt được tải về. Cứ thế
mà ghép lại thôi.
Cách này người ta lại nghĩ ra cách chộn vào một - hai trunk chân gỗ nhìn có vẻ như thật, video player cũng tải
về nhưng không decode, nếu phần mềm trộm máy móc tải về ghép vào sẽ bị lỗi file mp4 cuối cùng.
Cả cách 1 hay 2 đều phải chỉnh sửa video player. Do đó cần phải có hiểu biết về javascript.
Thực ra chúng ta phải sửa vào videojs contrib hls, phần tải về segment (trunk)
https://github.com/videojs/videojs-contrib-hls/blob/master/src/media-segment-request.js
DASH
- Dùng MP4Box tạo được, buộc phải dùng Shaka player để chơi, xem được trên Windows, Android, nhưng
không xem được trên iOS
Video Player
- Shaka chỉ chơi Dash được. HLS lỗi
- Video.js chỉ chơi HLS. Dash contribute báo lỗi, mặc dù đã tạo playlist
Kiểm tra khả năng đánh cắp video
- Em đã lấy được file m3u8 và video dưới dạng mp4 của HLS
- Do Dash em chưa chạy được nên em chưa kiểm tra được
Còn về trang Techmaster.vn, em đã chọc vào và lấy thành công video của bài giảng, hơi mất công
hơn HLS nhưng có thể lấy được.
-------------
Em xin báo cáo tiến độ 2 ngày một lần.
Em cảm ơn!
Cường
ffmpeg -i bunny.avi -s 1920x1080 -c:v libx264 -b:v 1450k -bf 2 \
-g 90 -sc_threshold 0 -c:a aac -strict experimental -b:a 96k -ar 32000 bunny.mp4
Anh đang tìm hiểu để streaming video hệ thống cũ Techmaster từ Node.js sang Golang.
Hiện nay anh quên sạch các quy trình encode video và stream video hiện tại. Do đó nếu em có thể gửi lại tài
liệu em đã document và mã nguồn một phần dự án techmaster hiện nay.
Nếu anh nhớ không nhầm Techmaster sử dụng HLS và MPEG-DASH để truyền dữ liệu.
Phần player chúng ta mua bản quyền của FlowPlayer
https://flowplayer.com
Giờ anh mới phát hiện ra có thư viện HLS.js có thể xem video HLS
https://github.com/dailymotion/hls.js/tree/master
demo ở đây
http://dailymotion.github.io/hls.js/demo/
Anh đã xem được trên Mac (Chrome, Safari, Coccoc, chống download từ Coccoc), Windows 10 (IE11, FireFox
xem tốt. riêng IE11 xem native)
http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/Life-After-Flash-Will-Producers-Move-to-
HLS-DASH-or-Both-108522.aspx
Trường hợp nếu HLS chạy tốt trên mọi thiết bị. Dùng hls.js tích hợp trong flowplayer anh nghĩ đỡ phải
dùng mpeg-dash.
Tiết kiệm được 1/2 dung lượng ổ cứng. Mai thử dùng Flow player HLS
https://github.com/flowplayer/flowplayer-hlsjs
Techmaster dùng Mpeg-Dash để stream video theo từng trunk. Để tiết kiệm dung lượng ổ đĩa, Techmaster chỉ
dùng 1 loại bitrate cho 720p.
Google tạo ra Shaka Player để chơi cả HLS và Dash thì quá tốt
https://github.com/google/shaka-player
http://g.co/shakainfo
Hiện em sẽ dạy bên samsung 3 buổi nên cuối tuần mới về tech kiểm tra được.
Về cơ bản thì quy trình hoạt động của video server là:
- gv upload video mp4 đã convert h264.
- server convert video từ mp4 sang hls và mpegdash (sử dụng ffmpeg và mp4box)
- mpegdash stream cho pc + android, hls cho ios.
Source code thì trên gitlab.dev và gitlab.com, anh vào check thử xem.