воскресенье, 27 декабря 2009 г.

Рипание онлайн передач из нета в формате rtmp с помощью rtmpdump

В интернете кроме flv файлов для онлайн вещания и различных теле-передач используется rtmp протокол.
И качнуть понравившееся видео становится в разы сложнее, так как ни одно расширение файрфокс c ним не работает.Чаще всего видна
Мне понадобилось выкачать пачку таких вот rtmp файлов с записями настолько тенниса.
В моем случае исходная флешка содержала плейлист с видео.Чтобы достать из нее видео файлы :
  1. Я сделал анализ http хидеров при запуске этой флешки с помощью firefox расширения live http headers. Это дало ссылку на плейлист с прямыми ссылками на rtmp файлы http://cdn.laola1.tv/ittf/playlist.xml?r=164667. Плейлист содержит нужные ссылки вида rtmp://cp77194.edgefcs.net/ondemand/ittf_toc/091220_liu_guo_neu.flv
  2. Далее я установил полезнейшую программа rtmpdump.Которая и сделала всю работу.В свое время adobe попросил удалить эту программу с sourceforge.net. Сейчас ее можно найти на ланчпаде. Так как программа не скомпилировась с gcc-4.4.2 , я также сделал патч чтобы все работало.Для генту rtmpdump можно установить из моего оверлея, патч можно найти там же.
  3. Далее все просто.Используется команда вида:
    rtmpdump_x86 -r "rtmp://cp77194.edgefcs.net/ondemand/ittf_toc/091220_liu_guo_neu.flv"
    -o "/temp/tennis1.flv"
Если кому надо скрипт, чтобы автоматически выкачать все файлы из плейлиста, обращайтесь.
Update: отличная статья на open как найти rtmp поток и рипнуть его

пятница, 25 декабря 2009 г.

доступен мой gentoo оверлей bt-overlay

накопилось много собственных gentoo ebuild'ов и патчей
Решил все их опубликовать в свой оверлей bt-overlay
Доступен он по адресу http://bt-overlay.googlecode.com/svn/trunk/
Добавляется он командой: layman -o http://bt-overlay.googlecode.com/svn/trunk/layman.xml -f -a bt-overlay

Подробная инструкция по использованию оверлеев в генту тут

Из интересного имеется:
  • последний пропатченный для gcc4 rtmpdump-1.6 - для рипа rtmp файлов из сети
  • smbnetfs - основанный на fuse броузер локальной сети.самое удобное что я находил.Особенно для бездоменной сети
  • fatrat - качалка файлов на qt
  • asoundconf - переключение звука между двумя саунд картами, если их несколько в системе.
  • патченный phonon для смены названия треков в amarok радиостанциях
  • патченные cairo libXft для нормальных шрифтов
  • kim - kde image manager.Весь удобное dolphin меню для работы с изображениями
  • slimevolley - забавная игрушка в воллейбол
  • aqemu - Гуй для kvm и qemu.Довольно удобный
  • goldendict - словарь на qt. На мой взгляд, самый удобный словарь из существующих
  • и еще другой софт :)
Всех этих ебилдов нету в официальном оверлее. Так что welcome использовать :)

воскресенье, 20 декабря 2009 г.

Решение проблемы c обновлением названий песен amarok в ogg радио

Часто слушаю радио через амарок,
полюбившиеся мне радиостанции , такие как myradio mainstream rock вещают в ogg.
Амарок в упор отказывался обновлять название песни. Что зверски мешало, когда песня нравилась и хотелось узнать как она называется или посмотреть ее текст в том же амароке.

Проблема оказалась в phonon, описана тут. Актуальна для phonon-4.3.80 и младше и amarok 2.2.1 и младше
Решается через установку патча для phonon
Скачать ebuild с патчем phonon для генту можно у меня вот отсюда
обновление песен после установки пропатченного phonon работает просто чудесно :)

понедельник, 14 декабря 2009 г.

Два pppoe соединения на adsl модеме Zyxel P660HTW2

Всем привет,
хочу поделится радостью.
В продолжение давнего поста для моего adsl модема Zyxel P660HTW2 вышла прошивка, которая позволяет поднимать два разных vpn pppoe соединения с одинаковым VCI. Это актуально для для белорусского провайдера byfly, который имеем гостевое и основное соединение на одном vci.
Стало это возможно благодаря новой прошивке V3.40(AZC.3)b2 от 18 сентября 2009.
Прошивку скачать можно у меня
Также на сайте zyxel есть подробная инструкция по настройке двух соединений, заточенная кстати именно под byfly
Уже около месяца настроенный модем отлично работает с двумя соединениями.
Теперь не требуется поднимать на трех компах дополнительное гостевое соединение, что супер удобно

понедельник, 7 сентября 2009 г.

Bash скрипт для конвертации lossless m4a в mp3

Понадобилось конвертировать lossless m4a в mp3, ибо плеер тянет только последний формат.
Обычно конверчу любые аудио файлы с помощью perl audio converter(pacpl) .И раньше он справлялся без проблем.
А тут выдал ошибку.Оказывается библиотека faad, которую pacpl использует, не поддерживает данный тип конвертации.Поэтому набросал небольшой скрипт, который перегоняет файл в wav, а затем скармливает уже его pacpl.На вход скрипт принимает директорию где лежат m4a файлы, или один m4a файл.Если есть вложенные поддиректории с m4a,со скрипт их тоже сконвертирует.В результате mp3 файлы будут сложены в директории где лежат оригинальные m4a файлы.
Требует:
1.lame
2.mplayer

#!/bin/bash
IFS=$'\n'
#read parent directory/file to scan the m4a files inside.Possible values are directory/single m4a file
dir="$1"

#set source,temp and destination file extensions
sExt="m4a"
tExt="wav"
dExt="mp3"

echo "scan $dir"
tmp1=`tempfile`

find "$1"|grep $sExt > $tmp1
for i in `cat $tmp1`
do
dir=`dirname "$i"`
filename=`basename "$i" .$sExt`
fullname=$dir"/"$filename"."$tExt
fullmp3name=$dir"/"$filename"."$dExt

#remove the old files and pipe if exist
if [ -e $fullmp3name ] ;then
rm -fr $fullmp3name
fi
if [ -e $fullname ] ;then
rm -fr $fullname
fi
#make pipe for conversation
mkfifo $fullname
echo "converting $i"
lame -b 320 "$fullname" "$fullmp3name"&
mplayer -ao pcm "$i" -ao pcm:file="$fullname"
#pacpl --to MP3 --bitrate 320 --freq 48000 "$fullname"
#remove named pipe
rm -fr "$fullname"
done
rm -fr $tmp1


Ну или можно скачать тут

Update:
По совету ffsdmad изменил скрипт таким образом, чтобы он использовал пайпы. Это избавило от создания временного wav файла большого размера.Также заменил использование pacpl для конвертации в mp3 на lame.Ибо последний корректно поддерживает работу с пайпами.Для mp3 используется битрейт 320.Заменил в посте и в линке старый скрипт на новый.Старый скрипт для сравнения лежит тут

Update 2
По совету arseny попробывал кодирование с помощью ffmpeg.Тоже отлично работает.
Следующая команда перегоняет lossless m4a в mp3 в качестве 320kb/s
ffmpeg -i "/mnt/multi/music/Pop Rock/Brainstorm [ALAC]/2000 - Among the Suns/02 Weekends Are Not My Happy Days.m4a" -ab 320k -ac 2 "/mnt/multi/music/Pop Rock/Brainstorm [ALAC]/2000 - Among the Suns/02 Weekends Are Not My Happy Days.mp3"
Сделаю позже новую версию скрипта, чтобы можно было выбирать чем кодировать

суббота, 5 сентября 2009 г.

Новые внешний вид в амарок 2.1.80

На новом компе свежеустновленный amarok-.2.1.1 постоянно выдавал краш на выходе.Связано это было с ошибкой создания mysql базы.Уж не знаю отчего.
Вобщем решил ради интереса обновить амарок до нестабильной 2.1.80 версии и посмотреть , вдруг ошибку исправили.
В итоге,несмотря на то , что как крашилось так и крашится , значительно улучшился внеший вид и возможности по его изменению:
  • Наконец-то можно убрать огромные кнопки для проигрывания и заменить их на вполне опрятные
  • все видимые компоненты амарока легко закрыть открыть
  • можно перетащить видимые компоненты как нравится в несколько кликов
Честно говоря, я точно оставлю нестабильный пакет ради нормального вида кнопок :)
Вот что получилось у меня:
Или вот так:

Хотел записать видео , да qt-recorddesktop тормозит на Intel GM965.Буду признателен , если кто подскажет в чем дело. На втором буке на nvidia все работает отлично.

среда, 2 сентября 2009 г.

Как залогировать kernel panic когда она пришла к тебе

Купил себе новый бук.Поставил туда gentoo (gentoo-sources-2.6.30-r6) и буквально на второй день система стала намертво зависать при запуске компиляции больших пакетов как gcc .И выбрасывать собственно kernel panic в консоль.Вопрос стал в том как эту панику выловить , так как клава и мышка отваливаются, в messages ничего не пишется.Только Капс и Нам лок мигают.Словом, как буд-то резко вырубили електричество.
А без этого нужного кернел паник лога ошибку фиг найдешь.
Оказывается , способ есть :) Что я сделал:
Требования: требуется еще одна машина в той же сети . А также на машине , где происходит kernel panic обязательно должен быть обычный сетевой(тот что не wifi) интерфейс
1.На хосте где происходит паника убеждаемся что в ядре установлен модуль netconsole .Установлен в виде модуля

cat /boot/config|grep NETCONSOLE
CONFIG_NETCONSOLE=m

2.Разрешаем посылку UDP сообщений по сети между вашими двумя машинами.У меня сеть из 2 компов, поэтому они включены изначально.
3.Подгружаем модуль командой

modprobe netconsole netconsole=6969@192.168.1.36/eth0,6969@192.168.1.33/00:18:de:e1:79:2b

где
192.168.1.36/eth0 - ай пи адрес и имя сетевого интерфейса на машине, где происходит kernel panic.У меня заработало только при условии, что eth0 - это обычная, сетевая плата, не wifi
192.168.1.33/00:18:de:e1:79:2b - ай пи адрес и мак адрес машины, которая будет принимать логи
Запустите dmesg для проверки - в /var/log/messages должно появится сообщение, что модуль netconsole загружен и логирование активировано
4.Теперь идем на машину которая будет принимать логи и в консоли запускаем команду

nc -u -l -p 6969

Если такой команды нету, устанавливаем netcat

Cобственно все, в эту консоль у вас будут валиватся сообщения с удаленной машины. И , в частности, так "нужный"
kernel panic

При желании к этой фиче можно добавить
1. Писать логи в syslog на удаленной машине вместо консоли
2. динамически изменять конфигурацию netconsole - куда и откуда слать логи.
Но тут уж google вам в помошь и /usr/src/linux/Documentation/networking/netconsole.txt

Отчего паника возникает у меня пока не разобрался , вот засабмитил баг в gentoo.Там и полный trace.Буду очень признателен если кто-то с таким сталкивался и сможет помочь