Thứ Hai, 14 tháng 11, 2022

Xem IPTV với Router Openwrt sử dụng TVHEADEND

 

Nguồn: https://vvd214.blogspot.com/2015/05/xem-iptv-mytv-onetv-dung-router-chay.html

Mục đích:

- IPTV từ nhà cung cấp sử dụng giao thức udp nên chỉ xem thông qua Settopbox, hoặc VLC, chất lượng kém khi xem qua wifi. Các chương trinh udpxy và tvheadend sẽ convert luồn udp sang giao thức http, xem mượt mà hơn, quan trọng nhất là thưởng thức IPTV trên nhiều thiết bị (Android, IOS, KODI…).
- Mình đã hướng dẫn udpxy chạy trên router cài firmware Openwrt. Tìm hiểu loanh quanh tìm ra một tool nhiều tính năng hơn thay thế udpxy là tvheadend.

1. Yêu cầu cài đặt
- Router đã cài đặt firmware OpenWrt. tham khảo cách cài đặt tại: Hướng dẫn cài Openwrt và udpxy chạy trên router cài firmware Openwrt để config Openwrt có tín hiệu IPTV. Bài viết này mình dựa trên firmware Openwrt.
- Dung lượng soft tvheadend lớn nên chỉ dành cho Router có bộ nhớ FLASH >= 8MB hoặc Router có cổng USB để hỗ trợ mở rộng bộ nhớ trên USB. Các bạn có thể tham khảo bộ nhớ trong của Router mình đang dùng tại đây Supported_Devices.
2. Tiến hành cài đặt
Cài đặt tvheadend 4.0.9 thông qua SSH:
opkg update
opkg install tvheadend
 
Trên Web truy cập thử: http://x.x.x.x:9981. trong đó x.x.x.x là địa chỉ IP của Router, 9981 là cổng truy cập của TVheadend. vào sẽ thấy giao diện của TVheadend
Bạn sẽ thấy Welcome screen, các bạn thiết lập ngôn ngữ, tạo user rồi Save&Next. Xong khởi động lại Router

Cài đặt tvheadend 4.1.x trở lên (tải tvheadend 4.x):
Tải về file tvheadend 4.x phù hợp cho Router và phiên bản Openwrt bạn đang dùng (đầy đủ cho ar71xx và ramips )
Dùng WinSCP copy file tvheadend 4.x vừa tải về vào folder /tmp của router, chạy Putty kết nối SSH, chạy lệnh:
opkg update
opkg install /tmp/tvheadend_4.xxxxxxx.ipk
Trên Web truy cập thử: http://x.x.x.x:9981. làm như ở trên.  
Xong khởi động lại Router. Tham khảo thêm: Config IPTV dành Tvheadend 4.1 trở lên 

3. Tùy chỉnh cài đặt.
 
Các bạn vào Configution ---> DVB Inputs --->Network --->Add, chọn IPTV Network

Đặt tên list kênh của bạn tương tự như hình, rồi nhấn Create
 Chuyển qua tab Muxes, click Add, chọn list vừa tạo, add thông tin của từng kênh theo list IPTV nhà mạng của bạn tương tự như hình:
 
Phần Interface: chính là tên của interface có tín hiệu IPTV (xem trong phần Network/Interface của Router Openwrt)
Xong nhấn Create và test thử bằng cách nhấn nút Play, xem bằng VLC được là ổn
Để thêm các kênh khác lặp lại bước vừa rồi, mỗi kênh add một dòng, nhiều kênh nhưng copy/paste nhanh lắm.
 Qua thẻ Channels, nhấn Map all services , để tạo list kênh từ list Services vừa Scan
- Vậy là Xong
4. Config VLC để xem IPTV qua TVheadend
Trên PC, truy cập http://x.x.x.x:9981/playlist/channels. Trong đó x.x.x.x là địa chỉ IP của Router, 9981 là cổng truy cập của TVheadend, một file plist sẽ được tải về, mở bằng VLC là xong.
- Trên IOS và Android, tải App TvhClient và VLC để xem
5. Để xem trên các thiết bị thông qua DLNA server như TV cho chức năng DLNA, PS3... thì các bạn save cái plist ở VLC ở trên rồi cài thêm soft xupnpd cho router để xem nhé.
6. Để xem trên KODI, dùng addon Tvheadend client, tham khảo tại bài Cấu hình Xem IPTV trên Openelec chạy XBMC của mình.
7. Để xem trên iOS và Android sử dụng app TVHClient và VLC
 
BONUS: CÀI ĐẶT LỊCH PHÁT SÓNG (EPG) CHO TVHEADEND
Khi cài xong lịch phát sóng, qua KODI các bạn sẽ thấy như sau: qua lịch phát sóng các bạn có thể, đặt lịch ghi lại chương trình dễ dàng thông qua WebUI của tvheadend hoặc trực tiếp trên KODI (nguồn EPG update hằng ngày)
 
 
 
Tải file tv_grab_file (File tự động tải lịch phát sóng Vietnam) về máy, dùng WinScp kết nối Router, copy vào /usr/bin/ , dùng Putty kết nối SSH vào Router, sửa Permission cho file tv_grab_file và cài thêm wget để chạy file đó
# Gõ lệnh
opkg update; opkg install wget
chmod 777 /usr/bin/tv_grab_file
#chạy thử
/usr/bin/tv_grab_file
#thấy tải 1oạt là OK
 
- Tìm đến thẻ EPG GrabberEnable cái Internal XMLTV, các cái khác ko dùng tắt hết, Save lại
- Phần Cron Mutil-line: chọn như hình (mình chọn 5 tiếng cập nhật EPG 1 lần), Save lại, rồi nhấn Re-run Internal EPG, để tải EPG
- Qua thẻ Channel, mỗi kênh các bạn tích chọn EPG tương ứng rồi Save lại như hình là xong, bật KODI, test lại
 
 
Để Config ICON TV: Sau khi config xong EPG
Phần Picon, tắt như hình
[IMG]
Phần Channels, chọn tất cả các kênh rồi click RESET Icon, khởi động lại Libreelec thì TVHEADEND sẽ tự động get link icon từ EPG Grabber cho từng kênh
[IMG]
Muốn ghi lại chương trình TV: dùng cho Router hỗ trợ USB, rồi thiết lập đường dẫn đến USB tương tự hình nhé:
 

Chúc thành công!

Xem IPTV với Router Openwrt sử dụng UDPXY

 

Nguồn: https://vvd214.blogspot.com/2016/07/xem-iptv-voi-router-openwrt-su-dung.html

I. Giới thiệu

Các bạn đang sử dụng Internet và IPTV, mình hướng dẫn các bạn cài đặt Router chạy FW Openwrt để xem IPTV trên các thiết bị thông minh (KODI, IOS, Android, SmartTV, PC…)
Vì IPTV sử dụng giao thức UDP/RTP (multicast) để truyền dữ liệu, xem trực tiếp link UDP/RTP trên KODI, VLC… thường có tình trạng vỡ hình, lag mạng và đơ Wifi, nên config Router Openwrt để chỉ lấy tín hiệu UDP/RTP đầu vào và convert thanh tín hiệu TCP(HTTP) để sử dụng trong mạng Lan như bình thường. Nhờ đó không cần Settopbox mà vẫn xem được IPTV trên điện thoại, máy tính, AndroidBox...
Yêu cầu:
- Đã đăng ký IPTV và xem được qua VLC
- Router Wifi đang sử dụng đã cài đặt OpenWrt (hướng dẫn cài FW Openwrt trên các loại Router)
- PC cài sẵn Putty để kết nối SSH vào Router và WinSCP quản lý và chỉnh sửa file trên Router
* Thành quả sẽ thế này, trên KODI:
II. Các bước thực hiện:
(nhiều chữ do mình viết chi tiết cho tránh nhầm lẫn, nhưng làm nhanh lắm, 5 phút là xong thôi)
Phần Modem:
- Đối với nhà mạng VNPT: thường nhà mạng config modem cho IPTV và Internet theo 2 đường Lan riêng biệt, Port 1,2,3 cho Internet, Port 4 cho IPTV (thường thế), các bác cắm LAN thử cổng IPTV (port4) với Laptop, dùng VLC xem thử list IPTV_VNPT, xem được là ok tiến hành config theo cách IPTV và Internet trên 2 đường LAN riêng biệt.

- Đối với FPT: thường IPTV và Internet chung 1 đường LAN, test tín hiệu IPTV bằng cách nối dây Lan từ Modem vào Laptop dùng VLC xem thử list IPTV_FPT, xem được TV và dùng net bình thường là ok, config Router theo cách: IPTV và Internet cùng 1 đường LAN

Phần Router Wifi:
Các model của tplink như wr740/741, wr940/941, wr841/842... chỉ có 4MB flash rom, nên chỉ dùng bản Openwrt 17.01 trở xuống, ko nên dùng bản mới hơn (trừ khi Router của bạn ko có FW bản cũ) vì có khả năng ko đủ bộ nhớ để cài igmpproxy/udpxy
1. Dành cho Internet và IPTV trên 2 đường LAN riêng:
Ta sẽ config trộn lẫn cả IPTV và Internet trên Router Openwrt để vừa xem IPTV vừa có Internet.
- Router rút hết các cổng ra, chỉ để mình Internet cắm vào Wan của Router và sử dụng Wifi để config (để lát config Port đỡ nhầm).
- Nếu IP của Modem và Router trùng nhau thì đổi IP của Router nhé (vd: Modem: 192.168.0.1 thì Router: 192.168.10.1)
- Sử dụng Putty để login SSH vào IP của router gõ lệnh
opkg update && opkg install igmpproxy udpxy kmod-bridge
# thiết lập tự động khởi động cùng openwrt
/etc/init.d/igmpproxy enable
/etc/init.d/udpxy enable
echo "sleep 60 && /etc/init.d/udpxy start > /dev/null 2>&1&
$(cat /etc/rc.local)" > /etc/rc.local
#Xóa IPV6 (giảm vỡ hình cho udpxy)
uci delete dhcp.lan.ra
uci delete dhcp.lan.dhcpv6
uci delete network.wan6
uci set firewall.@defaults[0].disable_ipv6=1
sed -i '/net.ipv6.conf.all.forwarding=1/a net.ipv6.conf.all.disable_ipv6=1' /etc/sysctl.conf
echo "net.ipv4.conf.all.force_igmp_version=2" >> /etc/sysctl.conf
uci commit dhcp
uci commit firewall
uci commit network
tool UDPXY vừa cài chịu trách nhiệm convert luồng dữ liệu của IPTV (rtp, udp) sang (http) xem mượt mà và không ảnh hưởng đến Internet.
- Truy cập Router qua WEB UI, vào Network / Switch:
Đối với các loại Router TP-LINK 740/741/840/841/845/847N ... (chạy bản Openwrt chip ar71xx):
Mặc định Vlan1 có sẵn, Nhấn Add để thêm Vlan 2: CPU để (tagged), Port 4 (untagged), tại Vlan1: CPU để (tagged), Port4 (off) như hình, rồi Save (các bước dưới cũng chỉ Save chứ không Save&Apply nhé)
Port 4 lát nữa sử dụng để cắm dây IPTV (bước này chia thêm 1 Vlan nữa để lát nữa tín hiệu IPTV, không ảnh hưởng đến Internet ở cổng Lan 1,2,3 và Wifi)
Chú ý: Nhiều loại Router, tên số Port ghi trên Router và phần Switch của OpenWrt nhận lệch nhau, có thể Port 4 trên Router mà phần Switch như hình lại nhận Port khác, nên bạn test trước cho cẩn thận tránh cắm nhầm, bằng cách cắm thử dây IPTV vào Port 4 của Router, rồi xem lại phần Switch như ở trên xem đúng Port 4 ko nhé, nếu đúng thì Port 4 (có biểu tượng dây cắm vào), nếu xác định đúng thì rút ra để lát config xong cắm IPTV vào đó, ở hình trên mình dùng Wifi để config nên 4 cổng ko cắm gì cả.
- Qua Network / Interface / cick Add new Interface, tạo Interface tên IPTV (để ý IPTV đều viết hoa ở toàn bài tránh gõ nhầm lại lỗi nhé )để sử dụng cho Vlan02 mới tạo, rồi Save, rồi Edit Interface IPTV, thiết lập như hình.
Phần Advanced Settings, bỏ tích "Use default gateway” và "Use DNS servers advertised by peer", Save lại
 
Phần Physical Setting chọn Vlan 02 (eth0.2) vừa tạo để sử dụng cho IPTVSave lại
Phần Firewall Setting create thêm 1 zone nữa tên IPTV như hìnhSave lại

XongSave lại
Chuyển qua Edit Interface LAN, phần Physical Setting, bỏ tích ở eth0, tích vào Vlan1 (eth0.1).
Các phần General Setup của Interface LAN vẫn để mặc định (IP Lan của Openwrt và IP của Modem phải ko trùng dài IP nhé, vd: IP MODEM: 192.168.0.1 thì Lan Router: 192.168.1.1 hoặc 192.168.10.1)
riêng DHCP Server của Lan Interface, tại tab Advanced Settings, có thể chỉnh mục  là 6,8.8.8.8,8.8.4.4 để sau này các thiết bị kết nối vào Router đều đc set DNS của google (tùy chọn), xong Save
 
Click nút Unsave Changes ở góc và click Save&APPLY để lưu mọi thiết lập.
 
  
- Dùng WinSCP truy cập Openwrt (chọn kết nối SCP nhé), tìm các file sau chỉnh sửa
sửa file /etc/config/firewall
1. Sửa phần zone IPTV như sau
config zone
option name 'IPTV'
option input 'REJECT'
option forward 'REJECT'
option output 'ACCEPT'
option network 'IPTV'
option family 'ipv4'
2. thêm vào cuối file /etc/config/firewall đoạn sau
config rule
option src 'IPTV'
option proto 'igmp'
option target 'ACCEPT'
option family 'ipv4'

config rule
option src 'IPTV'
option proto 'udp'
option dest 'lan'
option dest_ip '224.0.0.0/4'
option family 'ipv4'
option target 'ACCEPT'

config rule
option src 'IPTV'
option proto 'udp'
option dest_ip '224.0.0.0/4'
option family 'ipv4'
option target 'ACCEPT'

config rule
option target 'ACCEPT'
option src 'wan'
option proto 'tcp'
option name 'iptv'
option family 'ipv4'
option dest_port '8889'
Xong Save lại
- Sửa tiếp file /etc/config/network
tìm đến dòng config interface 'lan'
thêm vào dòng  option igmp_snooping 1 như dưới
config interface lan
        option type bridge
        option igmp_snooping 1
        ...
Save lại, chuyển qua edit /etc/config/igmpproxy, xóa hết thêm đoạn sau:
config igmpproxy
        option quickleave 1

config phyint
        option network IPTV
        option zone IPTV
        option direction upstream
        list altnet 0.0.0.0/0

config phyint
        option network lan
        option zone lan
        option direction downstream
Save lại, chuyển qua edit /etc/config/udpxy, sửa như sau:

config udpxy
option disabled '0'
option respawn '1'
option verbose '0'
option status '1'
option bind 'br-lan'
option port '8889'
option source 'eth0.2'
option max_clients '5'
# option log_file '/var/log/udpxy'
# option buffer_size '4096'
# option buffer_messages '-1'
option buffer_time '3'
option mcsub_renew '120'
# option nice_increment '0'
điền Source : eth0.2, chính là tên của VLAN02 (IPTV) (mỗi router có thể khác), không chắc thì qua Network / Interface, để ý phần IPTV sẽ thấy
Xong Save lại.
 - Cắm dây IPTV vào Port 4 (đã xác định ở trên) rồi Reboot lại router thông qua WEB (System >> Reboot)
- Đợi Router khởi động xong, test lại xem Switch của Openwrt nhận đúng port 4 chưa, như hình dưới là được,
Dùng WEB truy cập http://x.x.x.x:8889/status ,(x.x.x.x là địa chỉ Router) nếu vào được là UDPXY đã chạy
- Mở cái IPTV_VNPT tải lúc đầu bằng Notepad, sửa lại các link theo dạng sau: ví dụ từ udp://@232.84.1.27:8136 thành http://x.x.x.x:8889/udp/232.84.1.27:8136 , (x.x.x.x là địa chỉ Router hoặc tải IPTV_VNPT_UDPXY sửa địa chỉ Router ) dùng VLC mở thử 1 link, nếu có hình là thành công. dùng file PLIST M3u đã chỉnh sửa để xem IPTV trên các thiết bị.
- Sau khi config xong thì Port 1,2,3 và WIFI sẽ vừa có mạng và vừa xem được IPTV
2. Dành cho Internet và IPTV trên 1 đường LAN.
Đơn giản hơn vì IPTV và Internet chung trên cổng WAN, nối dây từ Modem sang Wan của Router Openwrt.
Các bước thực hiện:

- Reboot lại router thông qua WEB (System >> Reboot)
- Dùng WEB truy cập http://x.x.x.x:8889/status ,(x.x.x.x là địa chỉ Router) nếu vào được là UDPXY đã chạy
- Mở cái IPTV_FPT tải lúc đầu bằng Notepad, sửa lại các link theo dạng sau:
ví dụ từ udp://@232.84.1.27:8136 thành http://x.x.x.x:8889/udp/232.84.1.27:8136 , (x.x.x.x là địa chỉ Router) dùng VLC mở thử 1 link, nếu có hình là thành công. dùng file PLIST M3u đã chỉnh sửa để xem IPTV trên các thiết bị.
3. Xem IPTV trên SmartTV hoặc AndroidBox.
- Sau khi config xong, các bạn có File M3u Plist dạng http:// sử dụng plist này để xem trên các thiết bị.
Đối với Android OS: 
- Tải App IPTV  và VLC cho Android để đọc m3u plist mới tạo
- Hoặc chuyên nghiệp hơn thì sử dụng KODI: Config Add-on:IPTV Simple Client để xem TV như sau:
   + Chọn file M3u đã chỉnh sửa dạng IPTV_VNPT_UDPXY
   + Epg Setting: XMLTV URL paste link lịch phát sóng (nguồn của bác LiuThuy): http://tinyurl.com/vnepg

Đối với các loại Internet TV chạy (LG WebOS  hoăc Samsung Tizen OS)
- Cài đặt ứng dựng SS-IPTV 
Bổ xung:
1. Đối với cách config trên 2 đường truyền, nếu vẫn cần 1 Port để cho Settopbox:
 - Phần Vlan2, các bạn config port 3,4 (untagged)) cho Vlan2, lúc này Port 4 để cắm IPTV từ MODEM, Port3 sẽ cắm vào Settopbox của các bạn; lúc này Vlan 1 sẽ là Port 1,2 và Wifi.
 - Hoặc các bác Login vào Modem qua phần Port mapping thiết lập lại Port 1,2 cho Internet, Port 3,4 cho IPTV để cắm Settopbox.
2. Vì IPTV đường truyền tương đối lớn nên để xem lâu dài khuyến khích các bạn dùng Lan cable thay vì Wifi sẽ ổn định hơn.
Nhược điểm của udpxy là không bảo mật, vì vậy các bạn không nên sử dụng port mặc định (4022) của udpxy (trong bài viết đã thay đổi thành port 8889, hoặc các bạn thay đổi theo ý của bạn.
3. Đối với Router Newifi D2... (chạy bản Openwrt chip mt7621) phần Switch, config 2 đường truyền thì theo hình:

Chúc thành công!