You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

herrlado

Professional

  • "herrlado" started this thread

Posts: 747

Location: Kassel

Occupation: Softwareentwickler

  • Send private message

1

Wednesday, September 4th 2013, 1:16pm

externremux.sh ohne mencoder

Hi.
Da die Distros zunehmend auf mplayer2 setzen und es bei mir auch besser funktioniert verwende ich nun mplayer2. mencoder ist weg geflogen allerdings.
Da aber alle mir bekannte externremux.sh Skripte mencoder verwenden, wollte ich in die Runde fragen ob jemand einen externremux.sh kennt, welches
ohne mencoder auskommt?


Gruß,
Lado

herrlado(DJ9LK)'s VDR

ASUS P8H77-M LE, 4GB DDR3-1333, Core i3 2100T / Asus NVidia GT 610 (mit 1GB RAM ) / yaVDR 0.5 (testing-vdr, testing-xbmc) / 3.5.0-27er Kernel / TeVii S480 & TT S2-1600 / softhddevice / yaUsbIR V3 mit Logitech Harmony 600 / Samsung UE40B8000 über HDMI / 50Hz / 13.0°,19.2°,28.2°,42.0°

Posts: 6,250

Location: Main-Spessart

  • Send private message

2

Wednesday, September 4th 2013, 1:33pm

Da die Distros zunehmend auf mplayer2 setzen

Das halte ich für ein Gerücht.

Man könnte so eine externremux.sh aber sicherlich auch mit ffmpeg umsetzen.

Edit: Das ist gar nicht mal so schwer. Mal sehen, ob ichs hinbekomme.
VDR4Arch --> Lian-Li PC-C37B | ASRock Q1900M | 4GB RAM | SanDisk SDSSDP064G | Samsung HD155UI | Digital Devices Cine S2 V6 | ZOTAC GT630 (Rev. 2) Zone Edition

3

Friday, September 6th 2013, 6:36pm

Hi,

es ist auch ffmpeg möglich.

externremux.sh

Source code

1
2
3
4
5
6
#!/bin/bash

echo -ne 'Content-type: video/mpeg\r\n'
echo -ne '\r\n'

ffmpeg -f mpegts -i - -maxrate 700k -bufsize 1835k -c:v libx264 -preset fast -c:a libmp3lame -ab 64k -ar 22050 -ac 2 -async 50 -f mpegts pipe:1


Wer dazu noch deinterlacing anschalten möchte "-filter:v yadif".

"-maxrate" ist auf meine ca. 920 Kbps Upstream grob angepasst. Ich experimentiere allerdings noch viel mit den Einstellungen.

Gruß,
Dampf

EDIT1: Bei HD 1080i ist ein "-filter:v scale=1280:-1" (-1 für aspect ratio beibehalten) noch ganz praktisch. Skaliert den Stream auf 1280×720 bei 1080i input. Bei schwächeren CPUs oder Smartphones darf es auch kleiner sein z.B. 640:-1 oder 480:-1...

This post has been edited 1 times, last edit by "Dampfgarten" (Sep 6th 2013, 6:48pm)


Posts: 6,250

Location: Main-Spessart

  • Send private message

4

Monday, September 9th 2013, 1:46pm

Ach, das ist ja schön. Man braucht also gar keine Fifos. Das war bei meinen Experimenten nämlich das Problem.
ffmpeg wollte nicht in mein Fifo schreiben.
VDR4Arch --> Lian-Li PC-C37B | ASRock Q1900M | 4GB RAM | SanDisk SDSSDP064G | Samsung HD155UI | Digital Devices Cine S2 V6 | ZOTAC GT630 (Rev. 2) Zone Edition

5

Wednesday, September 11th 2013, 9:55pm

Ich habe mir nun eine passende an meine Hardware und Bedürfnisse (1080i, 720p Sender) externremux.sh zusammengestellt.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/sh
#
# externremux.sh

### GENERAL CONFIG START
###
# Pick one of DSL/WLAN
QUALITY="DSL"
###
### GENERAL CONFIG END

case "$REMUX_VPID" in
''|0|1) CONTENTTYPE='audio/mpeg';;
*) CONTENTTYPE='video/mpeg';;
esac

QUALITY=${REMUX_PARAM_QUALITY:-$QUALITY}
case "$QUALITY" in
DSL|dsl) VBR=640K; ABR=64K; VSIZE=hd480;;
WLAN|wlan) VBR=3072K; ABR=128K; VSIZE=hd720;;
*) error "Unknown quality '$QUALITY'";;
esac
ABR=${REMUX_PARAM_ABR:-$ABR}
VBR=${REMUX_PARAM_VBR:-$VBR}
VSIZE=${REMUX_PARAM_VSIZE:-$VSIZE}

FPS=${REMUX_PARAM_FPS:-$FPS}

if [ "$SERVER_PROTOCOL" = HTTP ]; then
echo -ne "Content-type: ${CONTENTTYPE}\r\n"
echo -ne '\r\n'
# abort after headers
[ "$REQUEST_METHOD" = HEAD ] && exit 0
fi

ffmpeg -f mpegts -i - \
-filter:v yadif -filter:v scale=${VSIZE} \
-c:v libx264 -maxrate ${VBR} -bufsize 1024K \
-c:a libmp3lame -b:a ${ABR} -ar 44100 -ac 2 -async 50 \
${FPS:+-r $FPS} \
-f flv pipe:1


Das Ausgabe-Format wurde auf flv umgestellt. Läuft soweit prima mit MPlayer und VLC unter Linux (mplayer mag kein mpegts in Kombination ffmpeg mit externremux).
Auf Android habe ich den DicePlayer und MXPlayer getestet. Ebenso startet der Stream subjektiv schneller mit diesem Ausgabe-Format.

6

Saturday, September 14th 2013, 10:37pm

Ich habe mir nun eine passende an meine Hardware und Bedürfnisse (1080i, 720p Sender) externremux.sh zusammengestellt.

Habe hier etwas ähnliches mit handbrake_cli am laufen.
System: HW: i3-2120T, Intel DH67BL, Zotac GT 630/GK208, WinTV-NOVA-TD-500, cineS2, SilverStone GD04B black
SW: Debian 7.1, Kernel vanilla 3.13.5, ngene_18.fw, vdr 2.1.1, patches: debian,yavdr; xbmc
Plugins: xineliboutput, markad, epgsearch, text2skin(anthra), femon, osdteletext, yaepghd, zaphistory, extrecmenu, ...

7

Sunday, September 15th 2013, 6:05am

Ich glaub da verwechselst du was. handbrake dient zum "Kleinrechnen" von Videofiles, externremux zum streamen.

Gruß
iNOB

Mein VDR

Hartware: Gehäuse: Ahanix MCE 302, Mobo: Kontron 986LCD-M/mITX, CPU: Intel Core2 Duo Mobile T7400 2,16GHz, 2GB RAM, SAT: Digital Devices DuoFlex S2 miniPCIe, Graka: ASUS GeForce GT 730 ( GK208 ) Silent, 4x4TB 3,5" WD Red HD, 1x DVD-Brenner Pioneer, Atric IR-Einschalter+Empfänger, FB One-For-All URC-7960, SoundGraph iMON LCD ( MFP5I, 15c2:0038 )
Weichware: Jessie (x86_64), Kernel 3.16, NVidia v364.19, VDR 2.2.0 gepatched

8

Sunday, September 15th 2013, 2:48pm

Ich glaub da verwechselst du was. handbrake dient zum "Kleinrechnen" von Videofiles, externremux zum streamen.

Gruß
iNOB
Stimmt! Ist mir direkt nach dem Schreiben aufgefallen und wollte auch löschen und habe sie nicht abgeschickt. In der Liste der verfassten Messages habe ich sie auch nicht entdecken können und daher auch nicht weiter verfolgt.
Vermutlich war der ProxyCache daran schuld! :)
System: HW: i3-2120T, Intel DH67BL, Zotac GT 630/GK208, WinTV-NOVA-TD-500, cineS2, SilverStone GD04B black
SW: Debian 7.1, Kernel vanilla 3.13.5, ngene_18.fw, vdr 2.1.1, patches: debian,yavdr; xbmc
Plugins: xineliboutput, markad, epgsearch, text2skin(anthra), femon, osdteletext, yaepghd, zaphistory, extrecmenu, ...

This post has been edited 1 times, last edit by "bsari" (Sep 15th 2013, 7:48pm)


mtron

Trainee

Posts: 108

Location: Tirol (A)

  • Send private message

9

Sunday, September 15th 2013, 7:35pm

Ich habe mir nun eine passende an meine Hardware und Bedürfnisse (1080i, 720p Sender) externremux.sh zusammengestellt.


Danke dir!

Ich habe mir erlaubt das ins vdr-wiki zu übernehmen. Ich hoffe du hast nichts dagegen?

Cheers!

System


VDR: 2.1.6 (vanilla build ohne einen patch)
VDR Plugins: (alle dev Versionen vom git) softhddevice (via va-api), status, streamdev-server, live, skinflatplus, epgsearch, osdteletext, tvguide, femon, xvdr
CPU: 4x Intel i5-4570 CPU @ 3.20GHz mit 24341MB RAM
OS: Ubuntu 14.04 LTS - Linux 3.13.0*-generic (x86_64) kompiliert mit GCC 4.8.2
Display : Dell P2214H @ 1920x1080 pixels
OpenGL Renderer : Intel Haswell Desktop mit Mesa 10.1.0 und VA-API 0.35.0
SATA 1 : Samsung SSD 840
SATA 2 : Hitachi HDS72202
DVB Device : Terratec Cinergy S2 PCI HD
Kernel Module : lnbp21 stb6100 stb0899 mantis mantis_core dvb_core

10

Saturday, November 9th 2013, 12:59pm

Ich habe auch mal ein Script gemalt bzw. die Vorlagen hier abgewandelt:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
#
# externremux.sh

### GENERAL CONFIG START
###
# Pick one of DSL/WLAN
QUALITY="DSL"
###
### GENERAL CONFIG END

case "$REMUX_VPID" in
        ''|0|1) CONTENTTYPE='audio/mpeg'
                ;;
        *)      CONTENTTYPE='video/mpeg'
                ;;esac

QUALITY=${REMUX_PARAM_QUALITY:-$QUALITY}
case "$QUALITY" in
        WLAN|wlan)
                VBR=3072K
                ABR=128K
                width=640
                height=360
                ;;
        MOBIL|mobil)
                VBR=128K
                ABR=128K
                width=320
                height=180
                ;;
        *)
                error "Unknown quality '$QUALITY'"
                ;;
esac

VSIZE="scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2"
ABR=${REMUX_PARAM_ABR:-$ABR}
VBR=${REMUX_PARAM_VBR:-$VBR}
VSIZE=${REMUX_PARAM_VSIZE:-$VSIZE}

FPS=${REMUX_PARAM_FPS:-$FPS}

if [ "$SERVER_PROTOCOL" = HTTP ]; then
        echo -ne "Content-type: ${CONTENTTYPE}\r\n"
        echo -ne '\r\n'
        # abort after headers
        [ "$REQUEST_METHOD" = HEAD ] && exit 0
fi

COMMAND="avconv -i - -threads 2 -filter:v "${VSIZE}, yadif" -vcodec libx264 -maxrate ${VBR} -bufsize 1024K -acodec libmp3lame -b:a ${ABR} -ar 44100 -ac 2 -async 50 ${FPS:+-r $FPS} -f mpegts pipe:1"

# logger -t EXTERNREMUX "AVCONV: $COMMAND"

eval $COMMAND

Das Schöne ist, das in Zeile 37 die Größe in 16/9 vorgegeben und eventuell schwarz aufgefüllt wird, falls das Video z.B. 4/3 ist. So spackt MXPlayer auf Android nicht immer mit dem Seitenverhältnis.
In einer Minute werden bei QUALITY=WLAN ca. 3.5 MB Video erzeugt. Je nach Flatrate sogar fast Akzeptabel. MOBIL erzeugt ca. 2 MB/Min
HD TV schafft er auch, was mencoder nicht gepackt hat.

Getestet nur mit VLC unter Linux und MXPlayer auf Android.

Was mich wundert ist, das flv so gar nicht funktionieren will und um Traffic zu sparen, wollte ich die Framerate reduzieren, was aber auch nicht funktioniert. VLC zeigt mir immer 50 FPS an.
Grüße

Hannemann

Sig.


HTPC1: ASUS M4N78 Pro, AMD AM2, 2 GB RAM, CableStar HD2
HTPC2: ASUS M4N78 VM, AMD 4850e, 2 GB RAM, NVIDIA 8200, CableStar HD2
HTPC3: ASUS M3N78 EM, AMD 4850e, 2 GB RAM, NVIDIA 8300, CableStar HD2
Sevrer: SandyBridge Celeron, TT 3650 CI, 2xTerratec HTC USB XS HD
Software alle: Ubuntu 12.04 Server 64 Bit, yavdr/testing-vdr, xbmc Gotham, xvdr, vdpau

Immortal Romance Spielautomat