Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
hdhomerun_config [2019/06/22 02:12] neds [Channelmap] |
hdhomerun_config [2024/02/07 03:04] (current) neds |
||
---|---|---|---|
Line 9: | Line 9: | ||
* PC or embedded platforms. | * PC or embedded platforms. | ||
- | ===== Compiling hdhomerun_config ===== | + | ===== Obtaining hdhomerun_config ===== |
+ | <WRAP indent> | ||
=== Windows (pre-compiled) === | === Windows (pre-compiled) === | ||
- | Download and install the HDHomeRun software for Windows. The hdhomerun_config.exe executable can be found in the program directory - default C:\Program Files\Silicondust\HDHomeRun. | + | <WRAP indent> |
+ | |||
+ | Download and install the [[https://download.silicondust.com/hdhomerun/hdhomerun_windows.exe|HDHomeRun software for Windows]]. The hdhomerun_config.exe executable can be found in the program directory - default C:\Program Files\Silicondust\HDHomeRun. | ||
+ | |||
+ | </WRAP> | ||
=== Windows (MSVC++) === | === Windows (MSVC++) === | ||
- | Download and extract the libhdhomerun archive. Create a new empty project and include all | + | <WRAP indent> |
+ | |||
+ | Download and extract the libhdhomerun archive ( https://github.com/Silicondust/libhdhomerun ). Create a new empty project and include all | ||
the .c and .h files. From the project properties page under C/C++ advanced, change the Compile As type to C, click apply and then change it back to C++ -- this is a workaround for a bug in MSVC++. Under the Linker input, add Ws2_32.lib and iphlpapi.lib as Additional Dependencies. | the .c and .h files. From the project properties page under C/C++ advanced, change the Compile As type to C, click apply and then change it back to C++ -- this is a workaround for a bug in MSVC++. Under the Linker input, add Ws2_32.lib and iphlpapi.lib as Additional Dependencies. | ||
Compile. | Compile. | ||
+ | </WRAP> | ||
+ | === Mac (pre-compiled) === | ||
+ | <WRAP indent> | ||
+ | |||
+ | Download the [[https://download.silicondust.com/hdhomerun/hdhomerun_mac.dmg|HDHomeRun for Mac software]] and run the installer. This will install the command line utility for use in the Terminal app. | ||
+ | |||
+ | </WRAP> | ||
+ | === Linux/BSD === | ||
+ | <WRAP indent> | ||
- | === Cygwin/Linux/Mac/*BSD === | + | Download and extract the libhdhomerun archive ( https://github.com/Silicondust/libhdhomerun ). |
- | Download and extract the libhdhomerun archive. | + | |
Run "make" | Run "make" | ||
+ | </WRAP> | ||
+ | </WRAP> | ||
===== Using hdhomerun_config ===== | ===== Using hdhomerun_config ===== | ||
+ | <WRAP indent> | ||
+ | |||
The list of supported commands can be obtained by running hdhomerun_config without any parameters: | The list of supported commands can be obtained by running hdhomerun_config without any parameters: | ||
hdhomerun_config discover | hdhomerun_config discover | ||
Line 35: | Line 55: | ||
hdhomerun_config <id> save <tuner> <filename> | hdhomerun_config <id> save <tuner> <filename> | ||
hdhomerun_config <id> upgrade <filename> | hdhomerun_config <id> upgrade <filename> | ||
+ | |||
+ | </WRAP> | ||
===== Discover the HDHomeRun devices on the network ===== | ===== Discover the HDHomeRun devices on the network ===== | ||
+ | <WRAP indent> | ||
+ | |||
The discover command will find HDHomeRun devices that are on the same subnet as the host: | The discover command will find HDHomeRun devices that are on the same subnet as the host: | ||
hdhomerun_config discover | hdhomerun_config discover | ||
+ | |||
+ | </WRAP> | ||
===== Sending commands to a specific HDHomeRun ===== | ===== Sending commands to a specific HDHomeRun ===== | ||
+ | <WRAP indent> | ||
+ | |||
The "<id>" shown above represents a unique identifier for a HDHomeRun device, this can be either Device ID, or IP address: | The "<id>" shown above represents a unique identifier for a HDHomeRun device, this can be either Device ID, or IP address: | ||
hdhomerun_config <device id> get help | hdhomerun_config <device id> get help | ||
Line 48: | Line 76: | ||
A Device ID of FFFFFFFF can be used as a wild card for the first HDHomeRun device found on the network. Do not use this syntax if there are multiple HDHomeRun devices on the network, as the device used will be random based on discovery order, which may change between commands. | A Device ID of FFFFFFFF can be used as a wild card for the first HDHomeRun device found on the network. Do not use this syntax if there are multiple HDHomeRun devices on the network, as the device used will be random based on discovery order, which may change between commands. | ||
+ | |||
+ | </WRAP> | ||
===== Query the list of options supported by a HDHomeRun device ===== | ===== Query the list of options supported by a HDHomeRun device ===== | ||
+ | <WRAP indent> | ||
The get/set options supported by a specific HDHomeRun device can be queried using the get help command: | The get/set options supported by a specific HDHomeRun device can be queried using the get help command: | ||
Line 74: | Line 105: | ||
| <code>/sys/copyright</code> | Display firmware copyright | | | <code>/sys/copyright</code> | Display firmware copyright | | ||
| <code>/sys/debug</code> | Display debug info | | | <code>/sys/debug</code> | Display debug info | | ||
+ | | <code>/sys/restart</code> | Restart tuner/HDHomeRun. For example, <code>set /sys/restart self</code> will reboot the HDHomeRun. | | ||
+ | |||
+ | </WRAP> | ||
===== Channelmap ===== | ===== Channelmap ===== | ||
+ | <WRAP indent> | ||
+ | |||
The channelmap is used to configure the auto-modulation detection and channel scan. This should be configured correctly for each tuner. | The channelmap is used to configure the auto-modulation detection and channel scan. This should be configured correctly for each tuner. | ||
Line 106: | Line 142: | ||
| tw-bcast | Digital Antenna (Taiwan) | Taiwan | | | tw-bcast | Digital Antenna (Taiwan) | Taiwan | | ||
| tw-cable | Digital Cable (Taiwan) | Taiwan | | | tw-cable | Digital Cable (Taiwan) | Taiwan | | ||
+ | </WRAP> | ||
+ | |||
</WRAP> | </WRAP> | ||
===== Channel scan ===== | ===== Channel scan ===== | ||
+ | <WRAP indent> | ||
+ | |||
To run a channel scan: | To run a channel scan: | ||
<code> | <code> | ||
Line 118: | Line 158: | ||
When a digital channel is found it will identify the programs on the channel. The log filename is optional; if included it will log to the given filename. | When a digital channel is found it will identify the programs on the channel. The log filename is optional; if included it will log to the given filename. | ||
+ | |||
+ | </WRAP> | ||
===== Tuning a physical channel ===== | ===== Tuning a physical channel ===== | ||
+ | <WRAP indent> | ||
To set a channel use the set channel command: | To set a channel use the set channel command: | ||
Line 139: | Line 182: | ||
eg: hdhomerun_config FFFFFFFF set /tuner0/channel none | eg: hdhomerun_config FFFFFFFF set /tuner0/channel none | ||
</code> | </code> | ||
+ | |||
+ | </WRAP> | ||
===== Checking the signal strength ===== | ===== Checking the signal strength ===== | ||
+ | <WRAP indent> | ||
+ | |||
The basic signal information can be obtained by using the get status command: | The basic signal information can be obtained by using the get status command: | ||
<code> | <code> | ||
Line 169: | Line 216: | ||
flt: bps=38809216 | flt: bps=38809216 | ||
net: pps=0 err=0 stop=0 | net: pps=0 err=0 stop=0 | ||
- | + | ||
- | | + | |
Each line contains a prefix to indicate the type of data, followed by the values. | Each line contains a prefix to indicate the type of data, followed by the values. | ||
* tun = tuner status | * tun = tuner status | ||
Line 189: | Line 235: | ||
The counters are reset to zero upon a channel change, but may indicate a small number of errors caused before the tuner locks on the channel. As a result, diagnostics should be based on the change in values over time, and not the initial values. | The counters are reset to zero upon a channel change, but may indicate a small number of errors caused before the tuner locks on the channel. As a result, diagnostics should be based on the change in values over time, and not the initial values. | ||
+ | |||
+ | </WRAP> | ||
===== Detecting the programs on a physical channel ===== | ===== Detecting the programs on a physical channel ===== | ||
+ | <WRAP indent> | ||
The HDHomeRun will detect the programs (sub-channels). Use the get streaminfo command to query the detected programs: | The HDHomeRun will detect the programs (sub-channels). Use the get streaminfo command to query the detected programs: | ||
<code> | <code> | ||
format: hdhomerun_config <id> get /tuner<n>/streaminfo | format: hdhomerun_config <id> get /tuner<n>/streaminfo | ||
- | eg: hdhomerun_config FFFFFFFF get /tuner0/channel streaminfo | + | eg: hdhomerun_config FFFFFFFF get /tuner0/ streaminfo |
</code> | </code> | ||
The output format is: | The output format is: | ||
<program number>: <virtual major>.<virtual minor> [<name>] [(<flags>)] | <program number>: <virtual major>.<virtual minor> [<name>] [(<flags>)] | ||
- | + | ||
Example output: | Example output: | ||
3: 20.1 KBWB-HD | 3: 20.1 KBWB-HD | ||
4: 20.4 AZTECA | 4: 20.4 AZTECA | ||
- | | + | |
Digital cable does not always provide the channel name or virtual channel number: | Digital cable does not always provide the channel name or virtual channel number: | ||
1: 0 | 1: 0 | ||
2: 0 (encrypted) | 2: 0 (encrypted) | ||
3: 0 (control) | 3: 0 (control) | ||
- | | + | |
It may take several seconds after setting the channel for the stream information to be fully populated (depending on how long the channel takes to lock and how often the stream information is sent by the broadcaster/cable provider). | It may take several seconds after setting the channel for the stream information to be fully populated (depending on how long the channel takes to lock and how often the stream information is sent by the broadcaster/cable provider). | ||
+ | |||
+ | </WRAP> | ||
===== Filtering by program (sub-channel) ===== | ===== Filtering by program (sub-channel) ===== | ||
+ | <WRAP indent> | ||
The HDHomeRun supports automatic PID filtering by program number: | The HDHomeRun supports automatic PID filtering by program number: | ||
Line 232: | Line 284: | ||
hdhomerun_config <id> set /tuner0/program "3 tvct_from_pmt=11.2(TEST)" | hdhomerun_config <id> set /tuner0/program "3 tvct_from_pmt=11.2(TEST)" | ||
</code> | </code> | ||
+ | |||
+ | </WRAP> | ||
===== Filtering by PID ===== | ===== Filtering by PID ===== | ||
+ | <WRAP indent> | ||
+ | |||
The HDHomeRun supports arbitrary hardware PID filtering: | The HDHomeRun supports arbitrary hardware PID filtering: | ||
<code> | <code> | ||
Line 244: | Line 300: | ||
The filter is cleared to pass-all (0x0000-0x1FFF) when a set channel command is received. | The filter is cleared to pass-all (0x0000-0x1FFF) when a set channel command is received. | ||
+ | |||
+ | </WRAP> | ||
===== Saving a stream ===== | ===== Saving a stream ===== | ||
+ | <WRAP indent> | ||
+ | |||
The hdhomerun_config command can be used to automate the process of saving to the local filesystem: | The hdhomerun_config command can be used to automate the process of saving to the local filesystem: | ||
<code> | <code> | ||
Line 252: | Line 312: | ||
</code> | </code> | ||
- | While saving the stream, a single period “.” will be displayed every second. Additionally, as of the 20080609 release, the hdhomerun_config will detect reception and network errors, replacing the “.” with an alternative character to indicate the problem. | + | While saving the stream, a single period "." will be displayed every second. Additionally, as of the 20080609 release, the hdhomerun_config will detect reception and network errors, replacing the "." with an alternative character to indicate the problem. |
Example output: | Example output: | ||
Line 261: | Line 321: | ||
</code> | </code> | ||
- | **Advanced:** A filename of “null” indicates no file should be created, allowing the use of the save command as a diagnostic tool. | + | **Advanced:** A filename of "null" indicates no file should be created, allowing the use of the save command as a diagnostic tool. |
**Advanced:** "-" may be used as a filename to indicate standard output, allowing the save command to be used as a pipe on supported platforms. | **Advanced:** "-" may be used as a filename to indicate standard output, allowing the save command to be used as a pipe on supported platforms. | ||
<code>eg: hdhomerun_config FFFFFFFF save /tuner0 - | vlc -</code> | <code>eg: hdhomerun_config FFFFFFFF save /tuner0 - | vlc -</code> | ||
+ | |||
+ | </WRAP> | ||
===== Streaming to a target machine ===== | ===== Streaming to a target machine ===== | ||
+ | <WRAP indent> | ||
Set the target IP address and port number using the set target command: | Set the target IP address and port number using the set target command: | ||
Line 281: | Line 344: | ||
A global broadcast (255.255.255.255) or subnet broadcast can be specified however care must be taken to ensure that the broadcast traffic will not cause problems with other devices on the network. If the local network is bridged to a wireless network then the AP will typically transmit at a low broadcast speed saturating the wireless network. | A global broadcast (255.255.255.255) or subnet broadcast can be specified however care must be taken to ensure that the broadcast traffic will not cause problems with other devices on the network. If the local network is bridged to a wireless network then the AP will typically transmit at a low broadcast speed saturating the wireless network. | ||
+ | \\ | ||
+ | \\ | ||
=== Example: Streaming to VLC === | === Example: Streaming to VLC === | ||
+ | <WRAP indent> | ||
+ | |||
Run VLC: File, Open Network Stream. Select UDP/RTP. Specify port 5000. Discover the HDHomeRun: | Run VLC: File, Open Network Stream. Select UDP/RTP. Specify port 5000. Discover the HDHomeRun: | ||
hdhomerun_config discover | hdhomerun_config discover | ||
- | | + | |
Run a channel scan: | Run a channel scan: | ||
hdhomerun_config FFFFFFFF scan /tuner0 scan0.log | hdhomerun_config FFFFFFFF scan /tuner0 scan0.log | ||
- | | + | |
Set the physical channel: | Set the physical channel: | ||
hdhomerun_config FFFFFFFF set /tuner0/channel auto:651000000 | hdhomerun_config FFFFFFFF set /tuner0/channel auto:651000000 | ||
- | | + | |
Check sub-programs: | Check sub-programs: | ||
hdhomerun_config FFFFFFFF get /tuner0/streaminfo | hdhomerun_config FFFFFFFF get /tuner0/streaminfo | ||
Line 296: | Line 363: | ||
Select a sub-program: | Select a sub-program: | ||
hdhomerun_config FFFFFFFF set /tuner0/program 3 | hdhomerun_config FFFFFFFF set /tuner0/program 3 | ||
- | | + | |
Set the target: | Set the target: | ||
hdhomerun_config FFFFFFFF set /tuner0/target <ip address of pc>:5000 | hdhomerun_config FFFFFFFF set /tuner0/target <ip address of pc>:5000 | ||
+ | |||
+ | </WRAP> | ||
+ | </WRAP> | ||
+ | |||
+ | {{tag>troubleshooting}} | ||
+ | {{tag>development}} |