2012/01/14

[note] 使用Media Player Classic Home Cinema 看數位電視

##ReadMore##
※※※※如果有人能讓HiHD出聲,請麻煩告訴我,謝謝m(_ _)m※※※※


MPC-HC每次用數位電視掃描,掃出來的頻道名都是亂碼,而且有幾台都抓不到,還會當機,今天突然想到要用改reg的方式下手,就一直找資料來改。

找好久之後先在google找到PTT有資料,是改ini的方式,而現在MPC已經不用ini檔在存了,不過config的型式也差不多,於是就下手改。但是!PTT上的資料有點舊,頻道數不夠,而且也沒有數位電台,所以又再找。

結果翻來翻去,google就帶我到了MPC的原始檔,看了一下原始檔才知道原來資料還蠻好改的,只是需要時間比較檔案,最後終於改完。

只是雖然民視高畫質和HiHD有畫面,但因為音訊格式不支援,也有可能是我沒調好,總之一直出不了聲。理論上應該是HE-ACC的音軌,MPC一直沒辦法撥放,超詭異的。

我也去找了Organ HEAAC plugin,也試著把MPEG-2 Demultiplexer給block,但是MPCHC一直在呼叫MPEG-2 Demultiplexer然後又不出聲,一點辦法都沒有:Q。

經過三四個小時的奮戰,最後只弄出能夠支援15台電視,兩台高畫質無聲頻道,一台數位廣播的登錄檔。

把以下文字另存新檔為純文字檔案,然後改檔名與副檔名為「MPCHC-DVBT.reg」後,點兩下就可設定完畢頻道了。


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Gabest\Media Player Classic\DVB configuration]
"BDANetworkProvider"="@device:sw:{71985F4B-1CA1-11D3-9CC8-00C04F7971E0}\\Microsoft Network Provider"
"BDAScanFreqStart"=dword:00082208
"BDAScanFreqEnd"=dword:000aae60
"BDABandWidth"=dword:00000006
"BDAUseOffset"=dword:00000000
"BDAOffset"=dword:000000a6
"BDAIgnoreEncryptedChannels"=dword:00000000
"LastChannel"=dword:00000003
"0"="2|中視數位台 |533000|0|0|0|1|8350|6144|100|1000|1001|1001|0|2|0|0|1002|2|4|主聲道|1003|2|4|副聲道"
"1"="2|中視新聞台 |533000|1|0|0|1|8350|6144|101|1010|1011|1011|0|1|0|0|1012|2|4|"
"2"="2|中視綜藝台 |533000|2|0|0|1|8350|6144|102|1020|1021|1021|0|1|0|0|1022|2|4|"
"3"="2|公共電視 PTS |545000|3|0|0|1|8350|6144|201|2010|2011|2011|0|2|0|0|2012|2|4|主聲道|2013|2|4|副聲道"
"4"="2|行動電視 DiMo |545000|4|0|0|1|8350|6144|202|2020|2021|2021|0|2|0|0|2022|2|4|主聲道|2023|2|4|副聲道"
"5"="2|客家電視 HTV |545000|5|0|0|1|8350|6144|203|2030|2031|2031|0|2|0|0|2032|2|4|主聲道|2033|2|4|副聲道"
"6"="2|民視綜合台 |557000|6|0|0|1|8350|7168|300|3000|3001|3001|0|2|0|0|3002|2|4|主聲道|3003|2|4|副聲道"
"7"="2|民視交通台 |557000|7|0|0|1|8350|7168|301|3010|3011|3011|0|2|0|0|3012|2|4|主聲道|3013|2|4|副聲道"
"8"="2|民視新聞台 |557000|8|0|0|1|8350|7168|302|3020|3021|3021|0|1|0|0|3022|2|4|"
"9"="2|民視高畫質台 |557000|9|0|0|1|8350|7168|304|3040|3041|3041|1|2|0|0|3042|2|4|主聲道|3043|2|4|副聲道"
"10"="2|公共電視 Hi_HD |569000|10|0|0|1|8350|7680|200|2000|2001|2001|1|2|0|0|2002|2|4|主聲道|2003|2|4|副聲道"
"11"="2|台灣電視台 |581000|11|0|0|1|8350|8192|400|4000|4001|4001|0|2|0|0|4002|2|17|主聲道|4003|2|4|0"
"12"="2|台視財經台 |581000|12|0|0|1|8350|8192|401|4010|4011|4011|0|1|0|0|4012|2|4|"
"13"="2|台視綜合台 |581000|13|0|0|1|8350|8192|402|4020|4021|4021|0|1|0|0|4022|2|4|"
"14"="2|台視 Mobile Radio |581000|14|0|0|1|8350|8192|404|4040|4042|0|0|1|0|0|4042|2|4|"
"15"="2|華視 CTS |593000|15|0|0|1|8350|8704|501|5010|5011|5011|0|2|0|0|5012|2|4|主聲道|5013|2|4|副聲道"
"16"="2|華視教育頻道 |593000|16|0|0|1|8350|8704|502|5020|5021|5021|0|1|0|0|5022|2|4|"
"17"="2|華視休閒頻道 |593000|17|0|0|1|8350|8704|503|5030|5031|5031|0|1|0|0|5032|2|4|"


使用前要先去Option內,選擇擷取器為Digital,並設定好DVB的Capture Device和Tuner。


設定完成後,直接Open Device的樣子:

Radio Station(開混音器驗證有聲音):


PS:請勿點Navigator上的Scan按鈕,不然你又要重新執行登錄了。MPC內建的Scan沒辦法抓到中文,所以我才要花那麼多時間調整。


至於頻道參數的部份,我是照著我COMPRO U2800F掃出來的頻道檔案設定的:

TYPE: Digital
Number: 1
RealNumber: 1
Name: 中視數位台
Frequency: 533000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 866528
Schedule: 0
State: 0
BandWidth: 6
SID: 100
VideoPID: 1001
AudioPID: 0
AudioPIDTable[0]: 1002
AudioPIDTable[1]: 1003
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 中視數位台
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 2
RealNumber: 2
Name: 中視新聞台
Frequency: 533000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 866656
Schedule: 0
State: 0
BandWidth: 6
SID: 101
VideoPID: 1011
AudioPID: 0
AudioPIDTable[0]: 1012
AudioPIDTable[1]: 0
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 中視新聞台
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 3
RealNumber: 3
Name: 中視綜藝台
Frequency: 533000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 866784
Schedule: 0
State: 0
BandWidth: 6
SID: 102
VideoPID: 1021
AudioPID: 0
AudioPIDTable[0]: 1022
AudioPIDTable[1]: 0
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 中視綜藝台
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 4
RealNumber: 4
Name: 公共電視 PTS
Frequency: 545000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 866912
Schedule: 0
State: 0
BandWidth: 6
SID: 201
VideoPID: 2011
AudioPID: 0
AudioPIDTable[0]: 2012
AudioPIDTable[1]: 2013
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 公共電視 PTS
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 5
RealNumber: 5
Name: 行動電視 DiMo
Frequency: 545000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 867040
Schedule: 0
State: 0
BandWidth: 6
SID: 202
VideoPID: 2021
AudioPID: 0
AudioPIDTable[0]: 2022
AudioPIDTable[1]: 2023
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 行動電視 DiMo
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 6
RealNumber: 6
Name: 客家電視 HTV
Frequency: 545000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 867168
Schedule: 0
State: 0
BandWidth: 6
SID: 203
VideoPID: 2031
AudioPID: 0
AudioPIDTable[0]: 2032
AudioPIDTable[1]: 2033
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 客家電視 HTV
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 7
RealNumber: 7
Name: 民視綜合台
Frequency: 557000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 867296
Schedule: 0
State: 0
BandWidth: 6
SID: 300
VideoPID: 3001
AudioPID: 0
AudioPIDTable[0]: 3002
AudioPIDTable[1]: 3003
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: 民視?
ProviderName: 民視?
ServiceName: 民視綜合台
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 8
RealNumber: 8
Name: 民視交通台
Frequency: 557000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 867424
Schedule: 0
State: 0
BandWidth: 6
SID: 301
VideoPID: 3011
AudioPID: 0
AudioPIDTable[0]: 3012
AudioPIDTable[1]: 3013
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: 民視?
ProviderName: 民視?
ServiceName: 民視交通台
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 9
RealNumber: 9
Name: 民視新聞台
Frequency: 557000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 867552
Schedule: 0
State: 0
BandWidth: 6
SID: 302
VideoPID: 3021
AudioPID: 0
AudioPIDTable[0]: 3022
AudioPIDTable[1]: 0
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: 民視?
ProviderName: 民視?
ServiceName: 民視新聞台
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 10
RealNumber: 10
Name: 民視高畫質台
Frequency: 557000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 867680
Schedule: 0
State: 0
BandWidth: 6
SID: 304
VideoPID: 3041
AudioPID: 0
AudioPIDTable[0]: 3042
AudioPIDTable[1]: 3043
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: 民視?
ProviderName: 民視?
ServiceName: 民視高畫質台
VideoType: 27
AudioType: 17
Width: 0
Height: 0

Number: 11
RealNumber: 11
Name: 公共電視 Hi_HD
Frequency: 569000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 867808
Schedule: 0
State: 0
BandWidth: 6
SID: 200
VideoPID: 2001
AudioPID: 0
AudioPIDTable[0]: 2002
AudioPIDTable[1]: 2003
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 公共電視 Hi_HD
VideoType: 27
AudioType: 17
Width: 0
Height: 0

Number: 12
RealNumber: 12
Name: 台灣電視台
Frequency: 581000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 867936
Schedule: 0
State: 0
BandWidth: 6
SID: 400
VideoPID: 4001
AudioPID: 0
AudioPIDTable[0]: 4002
AudioPIDTable[1]: 4003
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 台灣電視台
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 13
RealNumber: 13
Name: 台視財經台
Frequency: 581000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 868064
Schedule: 0
State: 0
BandWidth: 6
SID: 401
VideoPID: 4011
AudioPID: 0
AudioPIDTable[0]: 4012
AudioPIDTable[1]: 0
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 台視財經台
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 14
RealNumber: 14
Name: 台視綜合台
Frequency: 581000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 868192
Schedule: 0
State: 0
BandWidth: 6
SID: 402
VideoPID: 4021
AudioPID: 0
AudioPIDTable[0]: 4022
AudioPIDTable[1]: 0
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 台視綜合台
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 15
RealNumber: 15
Name: 台視 Mobile Radio
Frequency: 581000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 868320
Schedule: 0
State: 0
BandWidth: 6
SID: 404
VideoPID: 0
AudioPID: 0
AudioPIDTable[0]: 4042
AudioPIDTable[1]: 0
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 台視 Mobile Radio
VideoType: 0
AudioType: 4
Width: 0
Height: 0

Number: 16
RealNumber: 16
Name: 華視 CTS
Frequency: 593000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 868448
Schedule: 0
State: 0
BandWidth: 6
SID: 501
VideoPID: 5011
AudioPID: 0
AudioPIDTable[0]: 5012
AudioPIDTable[1]: 5013
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 華視 CTS
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 17
RealNumber: 17
Name: 華視教育頻道
Frequency: 593000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 868576
Schedule: 0
State: 0
BandWidth: 6
SID: 502
VideoPID: 5021
AudioPID: 0
AudioPIDTable[0]: 5022
AudioPIDTable[1]: 0
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 華視教育頻道
VideoType: 2
AudioType: 4
Width: 0
Height: 0

Number: 18
RealNumber: 18
Name: 華視休閒頻道
Frequency: 593000000
Enable: 1
Lock: 0
Offset: 0
Reserve: 868704
Schedule: 0
State: 0
BandWidth: 6
SID: 503
VideoPID: 5031
AudioPID: 0
AudioPIDTable[0]: 5032
AudioPIDTable[1]: 0
AudioPIDTable[2]: 0
AudioPIDTable[3]: 0
AudioPIDTable[4]: 0
AudioPIDTable[5]: 0
AudioPIDTable[6]: 0
AudioPIDTable[7]: 0
NetworkName: NULL
ProviderName: NULL
ServiceName: 華視休閒頻道
VideoType: 2
AudioType: 4
Width: 0
Height: 0


說明:根據mpc的原始source:

99 strValue.AppendFormat (_T("%d|%s|%ld|%d|%d|%d|%d|%ld|%ld|%ld|%ld|%ld|%ld|%d|%ld|%d|%ld"),
100 FORMAT_VERSION_CURRENT,
101 m_strName,
102 m_ulFrequency,
103 m_nPrefNumber,
104 m_nOriginNumber,
105 m_bEncrypted,
106 m_bNowNextFlag,
107 m_ulONID,
108 m_ulTSID,
109 m_ulSID,
110 m_ulPMT,
111 m_ulPCR,
112 m_ulVideoPID,
113 m_nVideoType,
114 m_nAudioCount,
115 m_nDefaultAudio,
116 m_nSubtitleCount);

148 m_Audios[m_nAudioCount].PID = ulPID;
149 m_Audios[m_nAudioCount].Type = nType;
150 m_Audios[m_nAudioCount].PesType = nPesType;
151 m_Audios[m_nAudioCount].Language = strLanguage;
152 m_nAudioCount++;
以及

33 typedef enum {
34 DVB_MPV = 0x00,
35 DVB_H264 = 0x01,
36 DVB_MPA = 0x02,
37 DVB_AC3 = 0x03,
38 DVB_EAC3 = 0x04,
39 DVB_PSI = 0x80,
40 DVB_TIF = 0x81,
41 DVB_EPG = 0x82,
42 DVB_PMT = 0x83,
43 DVB_SUB = 0x83,
44 DVB_SUBTITLE= 0xFE,
45 DVB_UNKNOWN = 0xFF
46 } DVB_STREAM_TYPE;


可以知道以PTS為例:

2|公共電視 PTS |545000|3|0|0|1|8350|6144|201|2010|2011|2011|0|2|0|0|2012|2|4|language 1|2013|2|4|language 2

FORMAT_VERSION_CURRENT=2
m_strName = 公共電視 PTS (頻道名)
m_ulFrequency = 545000 (頻道使用的頻率)
m_nPrefNumber = 3 (頻道號碼)
m_nOriginNumber = 0
m_bEncrypted = 0 (加密?)
m_bNowNextFlag = 1
m_ulONID = 8350
m_ulTSID = 6144
m_ulSID = 201
m_ulPMT = 2010
m_ulPCR = 2011
m_ulVideoPID = 2011 (VideoPID)
m_nVideoType = 0 (MPV)
m_nAudioCount = 2 (音軌數量2)
m_nDefaultAudio = 1 (預設音軌)
m_nSubtitleCount = 0 (字幕數量0)
ulPID[1] = 2012 (音軌1 PID)
nType[1] = 2 (MPA)
nPesType[1] = 4
strLanguage[1] = 主聲道 (其實可以填chi,eng,chi會自動轉換成chinese,eng會轉換成english,但是真要說的話,雙聲道應該不是固定的,所以我寫成這樣)
ulPID[2] = 2013 (音軌2 PID)
nType[2] = 2 (MPA)
nPesType[2] = 4
strLanguage[2] = 副聲道


參考連結:
http://forum.pcdvd.com.tw/printthread.php?t=720983&page=2&pp=10
http://sourceforge.net/apps/trac/mpc-hc/browser/trunk/src/apps/mplayerc/DVBChannel.cpp?rev=3338
http://sourceforge.net/apps/trac/mpc-hc/browser/trunk/src/apps/mplayerc/DVBChannel.h?rev=3338
http://alphaworks.dyndns.org/myblog/index.php?m=04&y=09&entry=entry090402-035956
http://www.ptt.cc/bbs/AVEncode/M.1296565844.A.D27.html