天天看點

任意裝置觀看iptv

背景

最近眼瞅着就要過年了嘛,過年一家人總是要看春晚的。但我家的光貓,上網口跟iptv口是兩條口,一旦把電視接到iptv口就看不了bilibili了。。。是以我家幾乎從來都沒接過iptv。。。

但過年總是要看春晚的,是以前兩年我家就是在各大視訊網站或cntv上看春晚。但除夕夜網絡總是不太好。

是以就想着,能不能把光貓的iptv口也用上,讓電視不用換網線,就既可以看b站,又可以看電視呢?(當然,不用網絡直播源,不清晰又卡。。。)

擷取電視機頂盒資訊

把一直沒用的機頂盒翻出來,直連接配接在光貓的iptv口上,将機頂盒連接配接電視,開機。

點選遙控器的設定鍵,要求輸入密碼。别慌,電信的是通用的10000 。别的品牌的百度一下也有。

然後我們調到裝置資訊的頁簽,記下IP位址、子網路遮罩、網關、主備DNS、有線MAC,無線MAC也可以記一下,不過好像沒用。

然後就可以關機,把機頂盒繼續收在櫃子裡啦。

同時接入網絡口和iptv口

主流方案:單路複用

現在主流的方案就是修改光貓配置,将網絡流量和iptv流量不綁定出端口,進而實作一條網線單路複用,同時傳輸網絡流量和iptv。

我的方案:雙wan口

雖然電信用一條光纖單路複用同時傳輸網絡流量和iptv到家,但網線的帶寬還是要遠遠小于光纖的。而且我家的網口隻是千兆口,讓我從光貓裡出來繼續單路複用,總感覺會影響網速。

那有沒有不用單路複用的方案呢?當然是有的啦。我家的工控機軟路由有6個網口呢。

是以我從原先的聚合lan口中,拆了一個網口,作為iptv的接入wan口。

在iKuai中配上wan2,選擇基于實體網卡的混合模式,這樣可以設定多個登入方式,進而讓我們直連光貓。

  1. 配置靜态ip,192.168.1.x,網關寫光貓的ip就行。這樣家裡的裝置就可以在不同網段中,直連光貓了。此條線路命名為vwan_model。
  2. 配置動态ip。這裡要填寫上面我們記錄的機頂盒mac位址,因為iptv都是綁定裝置的,其他mac位址配置設定不到ip。(當然,蒙對了說不定也行)至于這邊貌似也可以填寫同網段下的靜态ip,但我覺得還是僞裝mac來自動dhcp擷取ip會更保險一些。此條線路命名為vwan_iptv。
任意裝置觀看iptv

僞裝截取多點傳播流

這時候,雖然我們的軟路由通過僞裝mac,同時接入了網絡流和iptv流,但iptv使用的是多點傳播協定,如果不運作多點傳播協定的話那還是看不到電視。

是以我們在iKuai中打開IGMP代理,選擇IGMPv3協定版本,上聯端口選擇我們剛才設定動态IP的線路vwan_iptv,下聯端口選擇lan1線路,這樣家裡的所有裝置就都可以通過多點傳播代理,擷取到多點傳播流了。

多點傳播流轉單點傳播流

到上一步,我們擷取到的依然是多點傳播流,但是大多數家庭裝置并不支援多點傳播流,是以我們還需要把多點傳播流轉為單點傳播流,才能無障礙的在任意裝置觀看iptv。

這裡我們在iKuai路由器系統中設定UDPXY,信号源接口選擇我們代理的線路vwan_iptv,服務端口(也就是給内網裝置觀看iptv服務使用的端口)随便寫一個吧 。

擷取iptv節目位址(多點傳播訂閱位址)

其實在上一步做完時,我們就已經可以看iptv了。但是,我們的串流位址寫啥呢?

這其實是因為多點傳播建立了連接配接之後,還需要訂閱一個源,才會有資料傳來。但我們不知道這個訂閱位址是啥呀。。。

主流方案:機頂盒抓包

一般的主流方案就是,既然沒有訂閱位址,那直接對機頂盒抓包就行了。一般他們需要一個雙端口網卡,我雖然有交換機,也可以進行抓包,但終究還是煩了點,是以隻是當後備方案預備着。

我的方案:找現成的iptv源

那既然是抓包,就肯定有人抓過并共享了,而且iptv講究穩定性,訂閱位址肯定不會經常更換,是以我隻需要找到人們共享出來的iptv源就行啦。

但嘗試了幾個失敗後才發現,原來iptv并不是我想象中的全國一個巨大的多點傳播樹。而是借鑒了CDN的思路,先把多點傳播流緩存到各個地級緩存伺服器,再從該伺服器向周邊人群建立多點傳播樹。

是以我找了一個南京電信的iptv多點傳播源 https://github.com/shawze/IPTV ,把裡面的ip和端口改成我自己路由器的ip和設定的udpxy服務端口,得到m3u檔案,比如:

1 2 #EXTINF:-1, CCTV1 http://x.x.x.x:y/udp/239.49.8.19:9614

親測好用。

播放器

pc:vlc等

把上面的m3u節目單,即iptv源,拖進vlc的播放清單,再随便選擇一個節目(頻道): 

任意裝置觀看iptv

安卓:vlc等

我用的小米8,也可以安裝vlc哈。親測很好用。而且發現可以多個不同的節目同時看,一個節目差不多要流量1.多MB,我在pc和手機上看不同的節目,總流量速度就是2.28MB/s。

iphone:nplayer

任意裝置觀看iptv
任意裝置觀看iptv

TV:Kodi

我用的是海信的電視,自己裝了螞蟻市場,裡面直接就有Kodi,安裝。

進入Kodi後,點選設定,選擇Interface -> Skin,将font改為Arial based,不然中文顯示的都是亂碼。

如果需要将界面都給改成中文,可以進入插件,選擇look and feel -> language,安裝簡體中文,選擇确認切換語言,即可。

接下來,我們安裝iptv用戶端。

依然是進入插件頁,選擇PVR用戶端,安裝PVR IPTV Simple Client插件。然後進入插件配置,将m3u位置改為本地,然後選擇nfs。。。

導入後,即可正常觀看iptv啦。

任意裝置觀看iptv

原文位址:https://www.zhangshengdong.com/post/iptv/