Archief - mencoder pipen probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

ArnoDF

Legacy Member
ik heb dit script geschreven om met enkele dialogs en mencoder tv te recorden.

hier is het:

Code:
#!/bin/sh

mencoder tv:// -tv driver=v4l2:width=1024:height=768:norm=PAL:chanlist=europe-west:channel=$c:amode=1:device=/dev/video0:adevice=/dev/dsp -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1600 -oac mp3lame -lameopts cbr:br=128:mode=3 -ffourcc divx -endpos $t -o /home/arno/$f.avi | grep -n "Pos" | grep ${$1:5:`expr index $1 "s"`} | zenity --window-icon="/usr/local/share/icons/tvrec.png" --title="Recording..." --width=500 --text="tvrec is now recording"  --progress

het ziet er misschien wat chinees uit dus hier is hetzelfde zonder alle mencoder en zenity arguments:

Code:
#!/bin/sh

mencoder tv:// -tvchannel=$c -endpos $t -o /home/arno/$f.avi | grep -n "Pos" | grep ${$1:5:`expr index $1 "s"`} | zenity --progress

wat het doet is het volgend:
het zoekt in de output van mencoder naar de regel met Pos in, gewoonlijk zoiets:
Pos: 12.8s 320f ( 0%) 24.62fps Trem: 0min 0mb A-V:0.000 [1634:127]
hieruit stript hij het aantal seconden dat hij al heeft opgenomen, hier 12.8 sec.
dit moet dan worden omgezet naar een getal op tien door de endpos om te zetten in seconden en dit te delen door de 12.8 maal tien; $t / 12.8 *10
dan krijgt ge iets van 0.2 op 10 dat al is opgenomen. dit getal moet worden gepipet naar zenity die daar een progressbar van maakt. De omzetting heb ik er nog niet tussen gezet. maar het probleem is dat de lijn
Pos: 12.8s 320f ( 0%) 24.62fps Trem: 0min 0mb A-V:0.000 [1634:127]
dynamisch veranderd, de 12.8s telt altijd op zonder altijd opnieuw die regel te schrijven. Hierdoor kan ik de regel niet pipen om te strippen. Hoe zou ik dat wel kunnen?

het volledige script vindt ge hier met nodige comments van wat nog moet gebeuren: URL

Laat ik hopen dat het begrijpbaar is.

edit:
momenteel gebruik ik het volgende script: URL
Dit toont gewoon een icoon in het systeemvak met een icon dat in de map /usr/local/share/icons staat.
hier is het als het julie interesseert: icoon

GuntherDW

Legacy Member
mplayer kunde ook in slave mode laten draaie
dan gewoon een klein appje schrijve en gebruik make van popen() ofzo :)

dit is van de manpage
Code:
       -slave (also see -input)
              Switches on slave mode, in which MPlayer works as a backend for other programs.  Instead of intercepting keyboard events, MPlayer will  read
              commands separated by a newline (\n) from stdin.
              NOTE: See -input cmdlist for a list of slave commands and DOCS/tech/slave.txt for their description.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan