#!/bin/sh
FLAG='/var/tmp/.mute4skype'
test -f $FLAG && SEQ=`cat $FLAG` || SEQ=30
amixer set Capture $SEQ
if [ "$SEQ" -eq 30 ]; then
echo "1" > $FLAG
else
echo "30" > $FLAG
fi
пятница, 28 июня 2019 г.
Бинд кнопки выключения (приглушения) микрофона
воскресенье, 25 февраля 2018 г.
ffmpeg drawtext простейший таймер
Таймер выглядит как число от 0 до n
ffmpeg -i in.mkv -vf drawtext="fontfile=/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf:text='%{eif\:n/30\:d}':fontsize=50:fontcolor=white:box=1:boxcolor=black:x=10:y=10" -c:v nvenc -y out.mkv
Где "n/30" это буквально FPS делённое на 30, соответственно если видео 30 кадров в секунду то таймер будет показывать секунды.
%{eif\:n/30\:d} такой способ показывает только целые числа
суббота, 24 февраля 2018 г.
Цикл на обработку видео с последовательным переименованием
В одну строку
for o in 1 ; do o++; for i in *mkv; do ffmpeg -i $i -g 15 -c:v copy -an $o.mkv; ((o++)); done done
Построчно
for o in 1
do o++
for i in *mkv
do ffmpeg -i $i -g 15 -c:v copy -an $o.mkv
((o++))
done
done
понедельник, 14 августа 2017 г.
Делаем шикарные GIF'ки из видео в Linux
Создаём файл с именем например "gif.sh", открываем и заполняем следующим текстом:
#!/bin/sh
palette="/tmp/palette.png"
input="22331-22450.mp4" # видео файл
output="out.gif" # имя гифки
res="480" # разрешение по горизонтали
ps="33" # скорость проигрывания (если равна фреймрейту смого видео то скорость не изменится)
fps="21" # итоговый фреймрейт с отбрасыванием (или дублированием) кадров (если значение меньше чем "ps" то кадры будут отбрасываться)
ffmpeg -i $input -vf "scale=$res:-1:flags=lanczos,palettegen" -y $palette
ffmpeg -r $ps -i $input -i $palette -lavfi "scale=$res:-1:flags=lanczos [x]; [x][1:v] paletteuse" -r $fps -y $output
Как собрать видео из серии кадров можно узнать по ярлыку этой заметки.
понедельник, 31 июля 2017 г.
Пингуем красиво
Начнём
Пишем в консоле:
ping ya.ru
получаем примерно следующее:
64 bytes from ya.ru (87.250.250.242): icmp_seq=1 ttl=58 time=7.24 ms
64 bytes from ya.ru (87.250.250.242): icmp_seq=2 ttl=58 time=7.26 ms
64 bytes from ya.ru (87.250.250.242): icmp_seq=3 ttl=58 time=7.16 ms
лично меня интересует последнее значение которое следует за time=, но мне не нужен формат измерения ms, поэтому надо распарсить эту строку. Я нашёл 2 способа, через утилиту sed и через утилиту awk, уверен что есть куча других вариантов, но это самые простые для меня.
Парсим строку спомощью SED:
ping 192.168.1.1 | sed -u 's\^.*time=\\; s/ms.*//' > ping
Получаем файл "ping" (в домашмем каталоге) в котором написано что то вроде:
7.24
7.26
7.16
Похожий результат будет выдавать AWK:
ping 192.168.1.1 | awk -F "[\ ,=]" '{print $10; fflush()}' > pingawk
Приступим к рисованию гафиков
Как я уже сказал в начале, рисовать мы будем спомощью программы gnuplot.
Первым делом создаём простой и пустой текстовый файл в домашней дирректории, я назвал его "plotping", в нём прописываем параметры для gnuplot:
splot "pingawk" with lines
reread
после этого нам надо открыть 2 консоли (Позднее подумаю как запустить в одной). В одной запускаем:
ping 192.168.1.1 | awk -F "[\ ,=]" '{print $10; fflush()}' > pingawk
а во второй пишем:
gnuplot
откроется "диалог" с gnuplot где мы говорим ему брать настройки из ранее сделанного файла "plotping"
load "plotping"
Парсим ping с sed и awk
ping 192.168.1.1 | sed -u 's\^.*time=\\; s/ms.*//' > ping
ping 192.168.1.1 | awk -F "[\ ,=]" '{print $10; fflush()}' > pingawk
среда, 19 октября 2016 г.
Архивируем сильно и быстро
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive_name file_1 file_n