Den001 писал(а): ↑01.08.2006 17:48Cntrl+C - это если ты из консоли запускаешь. А вот если по хоткею... Может я не совсем понятно объяснил свою идею.
Задача: нужно оперативно запускать запись тв
Решение, которое пришло мне в голову: смотрю всегда через tvtime. Пишу скрипт, который убивает tvtime, запускаем mencoder, запускает mplayer на просмотр того, что записал. Таким образом получаю просмотр по ходу записи. Вешаю этот скрипт на хоткей, например Cntrl+R. Но нужно же еще запись и останавливать как-то... Пишу еще один скрипт, который убивает mencoder, убивает mplayer, запускает tvtime. Вешаю на хоткей, например Cntrl+S. Так вот, через killall - получается некорректное завершение записи.
Нужны идеи по корректному закрытию menodera.
ЗЫ: только сейчас подумал, а не слушется ли menoder команд mplayer...
Вот попросили в личку пример моего скрипта для записи с ТВ. Решил, выложить для всеобщего обозрения. Не судите строго. Надеюсь кому-нибудь поможет.
Вот так запускаю запись:
Код: Выделить всё
#!/bin/tcsh
# Generate variable vor filename which based on date and time
set DATE="`date +20%y%m%d-%H%M%S`"
# Set record patt where placed recorded files
set recordPATH="/home/denis/temp/"
# Close tvtime
tvtime-command QUIT
# Mute capture for PCM and set levels of Capture
amixer cset numid=8,iface=MIXER,name='PCM Capture Volume' 0
amixer cset numid=47,iface=MIXER,name='Line Playback Volume' 90%
amixer cset numid=19,iface=MIXER,name='Analog Mix Capture Volume' 90%
# Run mencoder for record
mencoder -tv driver=v4l2:device=/dev/video0:width=512:height=384:fps=24:norm=SECAM:input=1:buffersize=128:brightness=0:contrast=0:hue=0:saturation=0:audiorate=44100:alsa:forcechan=1 -oac lavc -lavcopts acodec=mp3:abitrate=192 tv:// -o "$recordPATH/$DATE.avi" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1800:vme=4:vqscale=3:vb_strategy=1:keyint=300 -vf pp=lb&
# Need same delay for creating buffer
sleep 3
# Mute playback volume of Analog Mix
amixer cset numid=18,iface=MIXER,name='Analog Mix Playback Volume' 0
# Run mplayer
mplayer -softvol "$recordPATH/$DATE.avi"
Вот так останавливаю запись (mecnoder завершает свою работу корректно):
Код: Выделить всё
# Stop mplayer and mencoder
killall -s SIGQUIT mplayer
killall -s SIGQUIT mencoder
# Restore volume
amixer cset numid=18,iface=MIXER,name='Analog Mix Playback Volume' 90%
amixer cset numid=47,iface=MIXER,name='Line Playback Volume' 70%
# Run tvtime
$HOME/bin/runTV&