Tin tức khuyến mãi hot nhất hiện nay

Thứ Hai, 26 tháng 3, 2018

Kỹ thuật Streaming


1. Giới thiệu về HTTP Live Streaming (HLS)

HTTP Live Streaming (hay còn được biết đến là HLS) là một cách truyền media dựa trên giao thức HTTP được Apple phát triển. Nó hỗ trợ các luồng trực tuyến, có khả năng thay đổi chất lượng phù hợp với thiết bị và băng thông mạng đang sử dụng. Cụ thể, giao thức làm việc như sau
  • Một tệp tin hay một luồng live sẽ được chia thành các file nhỏ
  • Các file nhỏ bên trên sẽ được lưu trữ trong một máy chủ web và lắng nghe các request từ một trình player.
  • Khi phát, player sẽ phát liên tiếp các file nhỏ một cách liền mạch mà không bị ngắt quãng
Nếu stream được chia thành nhiều chất lượng khác nhau (480p, 720p), thì player sẽ tự động lựa chọn chất lượng video tốt nhất để phát dựa theo tình trạng băng thông mạng. Thuật ngữ này là Adaptive Streaming (Thích nghi với điều kiện).

2. HƯỚNG DẪN TẠO STREAM SERVER VÀ CHUYỂN ĐỔI VIDEO THƯỜNG SANG STREAMING

Powered by MediTech,. JSC

2.1 Hướng dẫn tạo server video streaming

Thông tin về server cài đặt
OS: CentOS 6.7
NIC: eth0 - 192.168.100.192
Internet: Có (Bắt buộc)

Cài đặt ffmpeg để chuyển đổi video thường sang dạng Streaming (ts)

Cài đặt các trình biên dịch cần thiết. Lưu ý: Tất cả các lệnh dưới đây phải chạy trên quyền cao nhất của hệ thống (root).
yum update
yum install -y autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel

2.1.1 Biên dịch yasm từ source

mkdir ~/ffmpeg_sources
cd ~/ffmpeg_sources
git clone --depth 1 git://github.com/yasm/yasm.git
cd yasm
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
make distclean

2.1.2 Biên dịch gói mã hóa video dạng x264 và x265

cd ~/ffmpeg_sources
git clone --depth 1 git://git.videolan.org/x264
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install
make distclean
cd ~/ffmpeg_sources
hg clone https://bitbucket.org/multicoreware/x265
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off source

2.1.3 Biên dịch gói mã hóa âm thanh chuẩn ACC

cd ~/ffmpeg_sources
git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

2.1.4 Biên dịch gói mã hóa âm thanh LAME

cd ~/ffmpeg_sources
curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install
make distclean

2.1.5 Biên dịch code OPUS

cd ~/ffmpeg_sources
git clone http://git.opus-codec.org/opus.git
cd opus
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

2.1.6 Biên dịch thư viện âm thanh OGG

cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz
tar xzvf libogg-1.3.2.tar.gz
cd libogg-1.3.2
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

2.1.7 Biên dịch thư viện mã hóa âm thanh Vorbis

cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.gz
tar xzvf libvorbis-1.3.4.tar.gz
cd libvorbis-1.3.4
LDFLAGS="-L$HOME/ffmeg_build/lib" CPPFLAGS="-I$HOME/ffmpeg_build/include" ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

2.1.8 Biên dịch thư viện libvpx của WebM

cd ~/ffmpeg_sources
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples
make
make install
make clean

2.1.9 Biên dịch ffmpeg

cd ~/ffmpeg_sources
git clone --depth 1 https://git.videolan.org/git/ffmpeg.git
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264
make
make install
make distclean

Sau khi biên dịch đủ 9 gói, chúng ta gõ lệnh ffmpeg để kiểm tra

2.2 Chuyển đổi video thường sang dạng Streaming (ts)

ffmpeg -y -i input.mp4 -r 25 -g 25 -c:a libfdk_aac -b:a 128k -c:v libx264 -preset veryfast -b:v 1600k -maxrate 1600k -bufsize 800k -s 640x360 -c:a libfdk_aac -vbsf h264_mp4toannexb -flags -global_header -f ssegment -segment_list playlist.m3u8 -segment_list_flags +live-cache -segment_time 5 output-%04d.ts
  • input.mp4: Video có định dạng thông thường có thể như AVI, MPG, MKV,...
  • playlist.m3u8: Playlist chứa thông tin các file stream
  • output-%04d: File stream có dạng output-0001.ts, output-000n.ts

2.3 Cài đặt Web Server để players chạy stream

Chúng ta cài đặt NGINX
yum install -y nginx
service nginx start
chkconfig nginx on
Tắt SELinux và mở port 80 trên iptables
sed s/"SELINUX=enforcing"/"SELINUX=disabled"/g /etc/sysconfig/selinux
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart
Copy các file stream, playlist vào một thư thục và chuyển chúng tới thư mục public html của bạn.
Mặc định, thư mục public của nginx ở CentOS
/usr/share/nginx/html
Địa chỉ stream của tôi: http://192.168.100.192/bai-hat-abc/playlist.m3u8

Related Posts:

  • Dự Án T&T Capella số 2 – Phạm Ngọc Thạch Một trong những dự án hiếm hoi còn sót lại tại quận trung tâm Đống Đa Hà Nội, Dự án T&T Phạm Ngọc Thạch Hay còn gọi T&T Capella là dự án của chủ đầu tư T&T triển khai xây dựng và mở bán T6/2022. V… Đọc thêm
  • Dự Án Sunneva Island Đà Nẵng Sun Group Sunneva Island Đà Nẵng là bước tiến mới tại thị trường Đà Nẵng của tập đoàn Sun Group sau quãng thời gian dài chuẩn bị. Là “người tiên phong” đã triển khai rất nhiều dự án đình đám từ bắc chí nam, mỗi sản phẩm Sun Group ra … Đọc thêm
  • Dự Án The SaiLing Quy Nhơn - Bảng Giá CĐT Sở hữu vị trí đắc địa cùng với sự đầu tư tầm cỡ về hệ thống tiện ích đẳng cấp quốc tế dự án The Sailing mang đến sự khác biệt và đẳng cấp bậc nhất tại trung tâm thành phố Quy Nhơn đến với quý khách hàng. Tìm hiểu thêm: - … Đọc thêm
  • Bất động sản nghỉ dưỡng là gì? Tiềm Năng và Thách Thức ra sao ?Với ngành bất động sản, bất động sản nghỉ dưỡng luôn là một phân khúc mà nhiều nhà đầu tư mong muốn cũng như khát khao có được khi mà Việt Nam là một nước định hình phát triển du lịch là ngành kinh tế mũi nhọn và trọng điểm. … Đọc thêm
  • Tổng Hợp Các Dự Án Tại Hội An- Bất Động Sản Nghỉ DưỡngHội An 2022 với sự trở lại mạnh mẽ về mặt du lịch sau gần 3 năm Covid hoành hành trên Việt Nam cũng như Trên Thế Giới. Với sự trở lại mạnh mẽ của du lịch nội địa , Hội An nét đẹp di sản văn hóa của tỉnh Quảng Ngãi đã và đang … Đọc thêm