By
snorre
DVBWiewer Recording Service Linux / Wine
Hardware:
Ubuntu 18.04 server
1GB RAM
1 Core
FSTAB: mount NFS recordings from NAS to /mnt/recordings
Name: dvbsrv
Software:
We need wine (32bit version), Xvfb (short for X virtual framebuffer) for
running the recording service without screen, cabextract for extracting
the needed DirectX file (ksproxy.ax) and nfs-common for mounting the
recording share.
dpkg --add-architecture i386 && apt update
apt install wine32 xvfb cabextract nfs-common
Software Wine:
We create a user which is running the Recording Service.
In the users home we store the needed Windows software parts in the subdirectory "sw".
SSH to the Ubuntu server as root or become root with "sudo su -".
# create user w/o passwd
adduser dvb
su - dvb
mkdir sw && cd sw
wget http://download.microsoft.com/download/E/E/1/EE17FF74-6C45-4575-9CF4-7FC2597ACD18/directx_feb2010_redist.exe
cabextract directx_feb2010_redist.exe -F dxnt.cab
cabextract dxnt.cab -F ksproxy.ax
Files to be stored in /home/dvb/sw:
Total Commander 32bit: tcmd922ax32.exe
DVBViewer: DVBViewer_setup_6.1.4.exe
Recording SVC: Recording_Service_setup_1.33.02.01.exe
FFMPEG 32bit: ffmpeg-20190707-98b122c-win32-static.zip
DVB Lic: xxxx.dvbvkey
Config from Windows DVBWiewer:
This step is optional. You can configure the Recording Service without these.
I copied the file from the Windows installation to keep my settings.
Channel Logos: "c:\Program Files\DVBViewer\Images\Logos"
Plugins: "c:\Program Files\DVBViewer\Plugins"
Channels: "c:\Documents and Settings\All Users\Application Data\CMUV\DVBViewer\channels.dat"
Allowed Networks: "c:\Documents and Settings\All Users\Application Data\CMUV\DVBViewer\Config\svcuserdata.xml"
Rec-Server Config: "c:\Documents and Settings\All Users\Application Data\CMUV\DVBViewer\Config\service.xml"
Tuner Config: "c:\Documents and Settings\All Users\Application Data\CMUV\DVBViewer\Config\svchardware.xml"
SAT>IP Config: "c:\Documents and Settings\All Users\Application Data\CMUV\DVBViewer\Config\svcnetwork.xml"
Setup:
Start Xming on Windows client. On Linux Desktop you usually already have a X server running.
If using Putty, configure it to have X forwarding enabled.
Putty (or ssh -X) to dvbsrv as root.
cp .Xauthority /home/dvb/
chown dvb:dvb /home/dvb/.Xauthority
su - dvb
cd sw
Initial Wine start
wine cmd
exit
Install Total Commander
wine tcmd922ax32.exe
- no shortcuts
Install DVBViewer
wine DVBViewer_setup_6.1.4.exe
- no shortcuts, no FW
- OK on "Unable to execute file: powercfg.exe" - 10 times
- Add Key File, Username and Passsword - Key file in Z:\home\dvb\sw
- Cancel additional components install
- do not wiew changelog_en.html and do not Launch DVBViewer
Install Recording Service
wine Recording_Service_setup_1.33.02.01.exe
- no shortcuts, no FW, no Download FFmpeg
- OK on "Unable to execute file: powercfg.exe" - 10 times
- do not wiew changelog_en_rs.html and do not Launch Configuration
- Right click Recording Service System Tray Icon -> Disable Auto-Start Tray Control Program -> Exit
Start Total Commander - These steps can also be done manually on Linux or Wine comandline "wine cmd"
wine c:\\totalcmd\\totalcmd.exe &
- Configure
- Copy z:\home\dvb\sw\ksproxy.ax -> c:\windows\system32
- Open z:\home\dvb\sw\ffmpeg-20190707-98b122c-win32-static.zip
+ Copy z:\home\dvb\sw\ffmpeg-20190707-98b122c-win32-static.zip\ffmpeg-20190707-98b122c-win32-static\bin\ffmpeg.exe -> "c:\Program Files\DVBViewer"
- Copy Plugins -> "c:\Program Files\DVBViewer\Plugins"
- Copy Logos -> "c:\Program Files\DVBViewer\Images\Logos"
- Copy z:\home\dvb\sw\channels.dat -> c:\ProgramData\CMUV\DVBViewer
- Copy XML config files -> c:\ProgramData\CMUV\DVBViewer\Config
Configure Recording Service
wine "c:\Program Files\DVBViewer\svcoptions.exe"
- Recorder: Directories: Z:\mnt\recordings
+ Recordings: Disable Create NTFS filestorage data
- Web/UPnP:
Port 8080
Disable: Prevent PC sleep
Run As systemd service:
/etc/systemd/system/DVBViewer.service
[Unit]
Description=Run DVBViewer Recording Service in Wine
[Service]
User=dvb
ExecStart=/usr/bin/xvfb-run /usr/bin/wine "c:\Program Files\DVBViewer\DVBVservice.exe"
[Install]
WantedBy=multi-user.target
/etc/systemd/system/DVBViewer-port.service
[Unit]
Description=Redirect port 80 to 8080 for DVBViewer Recording Service
[Service]
Type=oneshot
ExecStart=/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
[Install]
WantedBy=multi-user.target
systemctl enable DVBViewer-port.service
systemctl enable DVBViewer.service
systemctl start DVBViewer-port.service
systemctl start DVBViewer.service
Start Wine programs as root:
Totalcmd:
cp /root/.Xauthority /home/dvb/ && su - dvb -c 'wine "c:\totalcmd\totalcmd.exe"' &
DVBViewer Opts:
systemctl stop DVBViewer && \
cp /root/.Xauthority /home/dvb/ && \
su - dvb -c 'wine "c:\Program Files\DVBViewer\svcoptions.exe"' && \
systemctl start DVBViewer
Recommended Posts