Bulk email sending with bash:
for email in mail1@example.com mail2@example.com mail3@example.com; do echo -e 'Some text\nWith new lines' | mail -s "MySubject" $email; done
Bulk email sending with bash:
for email in mail1@example.com mail2@example.com mail3@example.com; do echo -e 'Some text\nWith new lines' | mail -s "MySubject" $email; done
With this bash script one can encode videos for his Android with 480×320 screen.
for f in *.avi; do ffmpeg -i "$f" -s 480x320 -vcodec mpeg4 -acodec libvo_aacenc \ -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 `basename $f.mp4`; done
Enjoy the videos on your commute! 🙂
При установке MeeGo от LinuxCenter Yota работает сразу же. Но что делать тем, кто ставил оригинальную ОС с сайта MeeGo? Скачав MeeGo 1.2 для Cedar Trail с официального сайта, я принялся за настройку моего брелка Yota SWC-U200.
Для работы Yota под Linux необходимо установить пакет madwimax, которого нет в репах по умолчанию. Madwimax имеет зависимость dhclient, которого тоже нет в репах.
Сначала подключил репы Linuxcenter (спасибо Якову Мироничеву за полезный пост). Репы 1.1 катят для 1.2:
sudo zypper addrepo http://meego.linuxcenter.ru/MeeGo/releases/1.1/core/repos/ia32/packages/ "linuxcenter"
Затем их обновил:
sudo zypper refresh
Поставил dhclient:
sudo zypper install dhclient
Качнул madwimax у Mezon и запустил:
cd ~/Downloads wget http://meego.linuxcenter.ru/Mezon/builds/trunk/daily/core/repos/ia32/packages/i586/madwimax-0.1.1-2.mezon.1.0.i586.rpm sudo rpm -i madwimax-0.1.1-2.mezon.1.0.i586.rpm sudo madwimax
Проверил, в ifconfig появился новый интерфейс, а MeeGo сообщил, что я успешно подсоединился к Wired Network. Проверил IP (2ip.ru), действительно, Yota 🙂
На всякий случай кидаю сюда RPM:
dhclient-4.0.1p1-6.10.i586.rpm
madwimax-0.1.1-2.mezon.1.0.i586.rpm
1. Для установки Windows 7 с флешки нужно изначально отформатировать её в NTFS. Флешки, отформатированные в FAT32 не подойдут.
2. Скачать Unetbootin версии 494 (или 490). В последних версиях Unetbootin убрали галочку “показать все устройства”. Без неё вам Unetbootin не покажет устройства с NTFS. Также для Linux необходимо добавить права на выполнение (в Windows нужно просто распаковать архив):
chmod 755 unetbootin-linux-494 ./unetbootin-linux-494
3. Указать путь к образу ISO
4. Дождаться (минут 15) пока система скопирует на флешку файлы и сделает её загрузочной
5. Вставить флешку в нужный компьютер, загрузиться с неё.
Credits:
http://www.addictivetips.com/windows-tips/install-windows-7-from-usb-drive-requires-2-simple-steps/
http://www.webupd8.org/2010/10/create-bootable-windows-7-usb-drive.html
Bash script:
#!/bin/bash #sudo apt-get install imagemagick for i in {0..31}; do convert -rotate 180 -crop '3262x2330+192+72' img-$i.jpg jpg:- | \ convert -crop '50x100%' jpg:- imgout-$i%d.jpg; \ rm img-$i.jpg; \ done
Code:
find . -name '*.AVI' -exec ffmpeg -i {} -b 1600k {}.mpeg \;
Using ffmpeg to encode video for my Android phone:
find . -iname "*" -exec ffmpeg -i {} -s 480x320 -vcodec mpeg4 \ -acodec aac -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 \ -strict experimental {}.mp4 \;
Explanation:
find command searches for all files with AVI extention and for each of them executes command after —exec switch (which is ffmpeg -i input file -b bit rate). Curly brackets stand for currently found file.
This article explains how to connect to a ssh server located on the internet from a local network protected by a firewall through a HTTPS proxy.
Requirement are :
The ssh daemon need to listen on 443 port. To accomplish this, just edit this file (on debian system) /etc/ssh/sshd_config
and add this line :
Port 443
Then restart the daemon :
sudo /etc/init.d/ssh restart
I suppose you are on a Linux system (debian for example). First you have to compile the connect binary which will help your ssh client to use proxies (HTTPS in our case). Then you have to configure your ssh client to tell him to use HTTPS proxy when he tries to connect to your ssh server.
connect
software :connect-proxy
package :
sudo apt-get install connect-proxy
cd /tmp/ wget http://www.meadowy.org/~gotoh/ssh/connect.c gcc connect.c -o connect sudo cp connect /usr/local/bin/ ; chmod +x /usr/local/bin/connect
~/.ssh/config
file and add these lines :
## Outside of the firewall, with HTTPS proxy Host my-ssh-server-host.net ProxyCommand connect -H proxy.free.fr:3128 %h 443 ## Inside the firewall (do not use proxy) Host * ProxyCommand connect %h %p
ssh my-ssh-server-host.net
For example to connect to in ssh github.com
:
Host github.com ProxyCommand=ssh my-ssh-server-host.net "/bin/nc -w1 %h %p"
Credits: zeitoun.net
I wanted an easy way to convert videos to HTML5 formats (mp4/ogg/webm). With Linux, I could easily create a bash script to do all three and even create a screencap for the poster attribute.
The install process is a bit tedious and time consuming, but after it’s all installed you’re good to run the script for all your videos. The script uses ffmpeg to convert to all 3 formats, and it supports most any video format. The script also uses ffmpeg to generate a random screenshot, and even writes the HTML5 code for you.
Installation
For the most part, this portion of the tutorial was derived from the Ubuntu Forums.
sudo apt-get remove ffmpeg x264 libx264-dev yasm
sudo apt-get update sudo apt-get install build-essential git-core checkinstall texi2html libfaac-dev \ libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev \ libvorbis-dev libx11-dev libxfixes-dev zlib1g-dev
cd ~/Downloads wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz tar xzvf yasm-1.2.0.tar.gz cd yasm-1.2.0 ./configure make sudo checkinstall --pkgname=yasm --pkgversion="1.2.0" --backup=no --deldoc=yes --default
cd ~/Downloads git clone git://git.videolan.org/x264 cd x264 ./configure --enable-static make sudo mkdir /usr/local/lib/pkgconfig sudo checkinstall --pkgname=x264 --default --pkgversion="3:$(./version.sh | \ awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes
sudo apt-get remove libmp3lame-dev sudo apt-get install nasm cd ~/Downloads wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.tar.gz tar xzvf lame-3.99.tar.gz cd lame-3.99 ./configure --enable-nasm --disable-shared make sudo mkdir /usr/local/share/doc sudo mkdir /usr/local/share/doc/lame sudo checkinstall --pkgname=lame-ffmpeg --pkgversion="3.99" --backup=no --default \ --deldoc=yes
cd ~/Downloads git clone http://git.chromium.org/webm/libvpx.git cd libvpx ./configure make sudo checkinstall --pkgname=libvpx --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \ --default --deldoc=yes
cd ~/Downloads git clone --depth 1 git://source.ffmpeg.org/ffmpeg cd ffmpeg ./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \ --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx \ --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab make sudo checkinstall --pkgname=ffmpeg --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \ --deldoc=yes --default
The part that will take the longest is the ffmpeg, so be prepared to wait.
The Script
Usage:
./convertHTML5 video-file.ext
The script will output “video-file.ogv”, “video-file.webm”, “video-file.mp4″, and “video-file.html” while keeping the original video intact. The HTML document just has the plain <video> code with nothing else, easily copied and pasted.
#!/bin/bash if [[ $1 ]] then filename=$(basename "$1") filename=${filename%.*} directory=$(dirname "$1") duration=$(ffmpeg -i "$1" 2>&1 | grep Duration | awk '{print $2}' | tr -d ,) minutes=${duration%:*} hours=${minutes%:*} minutes=${minutes##*:} seconds=${duration##*:} seconds=${seconds%.*} hours=$((hours*3600)) minutes=$((minutes*60)) total=$(expr $hours + $minutes + $seconds) number=$RANDOM let "number %= $total" echo "Generating thumbnail" ffmpeg -i "$1" -deinterlace -an -ss $number -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg "$directory/$filename.jpg" 2>&1 echo "Converting $filename to ogv" ffmpeg -i "$1" -acodec libvorbis -ac 2 -ab 96k -ar 44100 -b 345k "$directory/$filename.ogv" echo "Finished ogv" echo "Converting $filename to webm" ffmpeg -i "$1" -acodec libvorbis -ac 2 -ab 96k -ar 44100 -b 345k "$directory/$filename.webm" echo "Finished webm" echo "Converting $filename to h264" ffmpeg -i "$1" -acodec libfaac -ab 96k -vcodec libx264 -level 21 -refs 2 -b 345k -bt 345k -threads 0 "$directory/$filename.mp4" echo "Finished h264" echo "Writing HTML..." echo "</pre> <video width="320" height="240" controls="controls" poster="\"$filename.jpg\"" preload=""><source src="\"$filename.ogv\"" type="\"video/ogg\"" /><source src="\"$filename.webm\"" type="\"video/webm\"" /><source src="\"$filename.mp4\"" type="\"video/mp4\"" />" > "$directory/$filename.html" echo " " >> "$directory/$filename.html" echo " " >> "$directory/$filename.html" echo " " >> "$directory/$filename.html" echo " Sorry, your browser does not support HTML5 video" >> "$directory/$filename.html" echo "</video> <pre>" >> "$directory/$filename.html" echo "All Done!" else echo "Usage: [filename]" fi
Credits: McSwindler
Генератор кредитных карт (Credit Card Test Numbers) может быть полезен для разработчиков, тестирующих сайты электронной коммерции. Сгенерированные карты удовлетворяют алгоритму Luhn, но не являются действительными. На этапе оплаты при их использовании в вашем магазине должен произойти отказ. Срок годности карты может быть установлен любым (в пределах 3х ближайших лет).
Генератор кредитных карт в действии:
[executecardsscript]
Исходники (GPL) на Python, Java, C#, PHP и Javascript: zip, tar.gz
Credits: Graham King
Ubuntu Linux:
sudo apt-get install rtmpdump
Rutube отдаёт ссылки на видеоролики 4-мя способами (по состоянию на 8 ноября 2013 г.):
Сначала нужно определить, какой тип отдачи используется для требуемого видеоролика, на момент обновления статьи чаще всего это способы 3 и 4 (как минимум, для российских пользователей).
Для этого берём любую ссылку на нужное видео с его полным или предназначенным для встраивания идентификатором, это может быть ссылка вида:
Для ссылки под номером 3 важно не терять параметр “p”, стоящий в конце.
Открываем файл с информацией о видео http://rutube.ru/api/play/trackinfo/<VIDEO_ID>/?format=xml[&p=blablabla]:
http://rutube.ru/video/51c001891c1147fa53787c8496c0d8bf/
=> http://rutube.ru/api/play/trackinfo/51c001891c1147fa53787c8496c0d8bf/?format=xml
http://rutube.ru/video/embed/6641938
=> http://rutube.ru/api/play/trackinfo/6641938/?format=xml
http://rutube.ru/[accounts/login/?next=/]video/private/2cc0885902cac3c8f9f88849e115db15/?p=lwTcQ6Z0PUTg3AB7lDvGqg
=> http://rutube.ru/api/play/trackinfo/2cc0885902cac3c8f9f88849e115db15/?format=xml&p=lwTcQ6Z0PUTg3AB7lDvGqg
В этом файле нужны адреса из тега <videoBalancer>:
<default>http://bl.rutube.ru/5bc45bc80ad9f9597a8e1de3e0cf69f6.f4m — внутри этого файла будут ссылки для закачки по RTMP/HDS.
<m3u8>http://bl.rutube.ru/5bc45bc80ad9f9597a8e1de3e0cf69f6.m3u8 — для HLS.
<default>http://bl.rutube.ru/5bc45bc80ad9f9597a8e1de3e0cf69f6.f4m
Это файл-манифест. Открыв его, смотрим на теги <baseURL> и <media>. Определяем тип отдачи по их содержимому:
Определившись со способом отдачи, приступаем к закачке.
RTMP
Тег <baseURL> содержит имя хоста, порт и переменную “app”. Атрибут url тега <media> содержит путь к потоку (playpath):
rtmp://video-N-N.rutube.ru(:1935)/<app>/mp4:volNN/movies/.*
|____________host___________|__app__|_____playpath____|
где переменная app может принимать следующие значения:
Из параметров, предлагаемых дампером (rtmpdump –help), нам нужны следующие:
--rtmp URL (напр. rtmp://host[:port]/) --app Переменная app. --playpath Перезаписывает playpath, указанный в --rtmp --swfUrl Ссылка на swf-плеер. --flv Название конечного FLV-файла. --live Для rtmp-ссылок, переменная app которых равна "vod/".
Примеры закачки ссылок:
rtmp://video-1-12.rutube.ru:1935/rutube_vod_2/_definst_/mp4:vol12/movies/b5/e0/b5e08ad46a65d700dd0da2f7b40e2fc0.mp4?e=1288635285&s=740fa844fc6687ac03681a0eb72d003e
sh/cmd:
rtmpdump --rtmp "rtmp://video-1-12.rutube.ru:1935/" --app "rutube_vod_2/_definst_/" --swfUrl "http://rutube.ru/player.swf" --playpath "mp4:vol12/movies/b5/e0/b5e08ad46a65d700dd0da2f7b40e2fc0.mp4?e=1288635285&s=740fa844fc6687ac03681a0eb72d003e" --flv "output_video.flv"
rtmp://video-102-1.rutube.ru:1935/vod/mp4:rutube/vol41/movies/a2/05/a205ff4b2073c18522253585224f7a7c.mp4?e=1287342905&s=813f44d26fe97cd7ef670cb8d44e36e2
sh/cmd:
rtmpdump --rtmp "rtmp://video-1-12.rutube.ru:1935/" --app "vod/" --swfUrl "http://rutube.ru/player.swf" --playpath "mp4:rutube/vol41/movies/a2/05/a205ff4b2073c18522253585224f7a7c.mp4?e=128734&s=813f44d26fe97cd7ef670cb8d4" --flv "output_video.flv" --live
Не забудьте про параметр –live, используемый при переменной app равной “vod/”. Иначе видео будет качаться в размере, в два-три раза превышающий указанный на сайте. Также –swfUrl, он должен быть равен адресу флеш-плеера: “http://rutube.ru/player.swf”.
HDS
С HDS-ссылками проще, достаточно ссылки на f4m-файл:
sh/cmd:
php.exe AdobeHDS.php --manifest "http://bl.rutube.ru/5bc45bc80ad9f9597a8e1de3e0cf69f6.f4m" --outfile "output_video.mp4"
<m3u8>http://bl.rutube.ru/5bc45bc80ad9f9597a8e1de3e0cf69f6.m3u8
Для закачки можно использовать ffmpeg:
sh/cmd:
ffmpeg -i "http://bl.rutube.ru/5bc45bc80ad9f9597a8e1de3e0cf69f6.m3u8" video_out.ts
Credits: tradiz.org