wxRuby + RubyScript2exe – мания

От известно време се забавлявам с Ruby. Този език е абсолютна мания за обектно-ориентирано програмиране. Липсваше ми само едно нещо – правенето на екзета, за да не инсталирам навсякъде интерпретатора. Намерих му колая, разбира се не без известни мъки :).
Използвам следните инструменти:

  • ruby-1.8.7-p72-i386-mswin32
  • wxRuby – инсталира се само един файл wxruby.so тук: ruby\lib\ruby\site_ruby\1.8\i386-msvcrt\wxruby.so. Инсталационния файл е wxruby-0.6.0-mswin.exe
  • rubyscript2exe – 0.5.3 (29.05.2007)

Това са стари версии, но само с тях разполагах под ръка.

При компилиране ми излизаше една грешка в rubyscript2exe:
rubyscript2exe.rb:621:in `replace’: can’t modify frozen string (TypeError)
Пачнах го като замених ред 621:

$0.replace(File.expand_path("./init.rb"))

с

$_0 = File.expand_path("./init.rb")
alias $__0 $0
alias $0 $_0

=============================================================================

Някои полезни трикове.
Има още една яка библиотека, с която могат да се компилират exe-та с Ruby – ocra.
Компилиране на TK-GUI:

ocra tk.rb --windows D:\ruby-1.9.3\lib\tcltk --no-autoload --add-all-core

ffmpeg commands

Напоследък съм тотален фен на OpenSource видео конвертора ffmpeg.
Ето примери с някои прости команди, които вършат страхотна работа:

ffmpeg.exe -i all.vob -sameq -ss 75 -t 75 -vcodec libx264 test.mpg

-i all.vob – файла, който ще обработваме
-sameq – запази качеството на видеото
-ss 75 – почни да режеш от 75-та секунда
-t 85 – продължителност на рязането 85 секунди
-vcodec libx264 – видео кодек в който да се конвертира. Ако искаме да сме сигурни, че файла ще върви на всяка Windows машина, можем да ползваме -vcodec msmpeg4v2.

Някои допълнителни екстри:
Video:
-s – размер на картината
-b – видео битрейд
-r – скорост на кадрите
-croptop, -cropbottom, -cropleft, -cropright – рязане на картината в пиксели
-padtop, -padbottom, -padleft, -padright – поставя кантове до картината (padding), в този случай е добре да се зададе и -padcolor 000000 – цвят на кантовете в HEX-формат, в случая 000000 – черно.
-vn – не конвертирай никакво видео. Използва се за да се екстрактне аудиото.

Audio:
-acodec libmp3lame – задаване на кодек за аудиото
-acodec copy – използвай същия кодек за аудиото
-ab 128k – битрейд за аудиото
-ac 6 – задаване на аудио каналите
-an – без аудио

Обединяването на видео и аудио става просто като добави и двата файла в началото;

ffmpeg -i audio.wav -i video.m2v ...

Конвертиране на MPG видео до FLV с високо качество за качване по видео-порталите:

ffmpeg -i input.mpg -sameq -f flv -vcodec libx264 output.flv

—————————-
UPDATE: 05.09.2016
—————————-
Някои интересни команди за кепчъринг на онлайн видео стрийм

ffmpeg архива за Windows върви с някои интересни инструменти. Един от тях е ffplay, който е наистина необикновен видео-плеър.
Един пример, който показва възможностите за плейване на онлайн стрийм (телевизията е City TV) с ffplay:

ffplay -i "http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8"

Ако съхраните в една директория mplayer и ffmpeg екзетата, ще можете да гледате отново същата телевизия, но през пайп с mplayer:

mplayer -cache 2000 -cache-min 99 "ffmpeg://http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8"

Същото, но прекарано през ffplay:

ffmpeg -i "http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8" -f matroska - | ffplay -i -

Ffmpeg е направо велик инструмент, който се ползва лесно и бързо, заради интуитивните му команди.

Join VOB files

За да се конвертира DVD до по-нормален формат, често се налага преди това VOB-файловете да се свържат в един общ (Join VOB files). Много хора не знаят, че MPEG и VOB файловете позволяват конкатенация, т.е. последователно свързване.
Свързване на VOB файлове под Windows:

copy /b 01.vob+02.vob+03.vob all.vob

Свързване на VOB файлове под Linux/UNIX/Mac:

cat 1.vob 2.vob 3.vob > all.vob

Ако е спазен стандарта при създаването на VOB-файловете не би трябвало да има проблеми.