June 15, 2013

ഫോട്ടോ റീസൈസിങ് - കമാന്റ് ലൈനിൽ നിന്നും

ഇമേജ് മാജിക് (ImageMagick) പാക്കേജിൽ ഉൾപ്പെട്ട ഒരു യൂട്ടിലിറ്റിയാണ് convert.
കമാന്റ്‌‌ ലൈനിൽ നിന്നും convert ഉപയോഗിച്ച് ഫോട്ടോകൾ റീസൈസ് ചെയ്യാൻ വളരെ എളുപ്പമാണ്. ഉദാഹരണത്തിന് 3888x2592 ഉള്ള big.jpg നെ 1200x800 ഉള്ള  small.jpg ആക്കുവാൻ താഴെ പറയുന്ന കമാന്റ് ഉപയോഗിക്കുക :

convert -resize 1200x800 big.jpg small.jpg

പ്രത്യേക ശ്രദ്ധയ്ക്ക് : രണ്ടാമത് കൊടുക്കുന്ന പേരിൽ ഫയൽ നിലവിലുണ്ടെങ്കിൽ അത് ഓവർറൈറ്റ് ചെയ്യപ്പെടും, അങ്ങനെ സംഭവിച്ചാൽ നേരത്തേയുണ്ടായിരുന്ന ഫയൽ പുന:സ്ഥാപിക്കാൻ പറ്റിയെന്നുവരില്ല.

June 13, 2013

യൂട്യൂബ് വീഡിയോ ഡൗൺലോഡ് - കമാന്റ് ലൈനിൽ നിന്നും


കംപ്യൂട്ടർ പ്രോഗ്രാമുകളെക്കുറിച്ചുള്ള (ഉദാ. KDE, GNOME) വീഡിയോകൾ യൂട്യൂബിൽ കാണുമ്പോൾ, സ്ക്രീൻ വ്യക്തമായി കാണാൻ നമുക്ക് ഹൈ ക്വാളിറ്റി വീഡിയോയിലേക്ക് മാറേണ്ടി വരും. ബാൻഡ്‌‌വിഡ്ത് പ്രശ്നങ്ങൾ കാരണം പലപ്പോഴും വീഡിയോകൾ സ്മൂത്തായി പ്ലേ ചെയ്യില്ല. ഒരു പോംവഴി വീഡിയോ pause ചെയ്ത് മുഴുവൻ ഡൗൺലോഡായ ശേഷം കാണുക എന്നതായിരുന്നു. കുറച്ചു കാലമായി pause ചെയ്താൽ വീഡിയോ മുഴുവനും ഡൗൺലോഡാകാതിരിക്കുകയും തൽഫലമായി മിസ്റ്റർ ശങ്കർ വീണ്ടും തെങ്ങിലേക്ക് പോവുകയും ചെയ്തു. മറ്റൊരുവഴി ഏതെങ്കിലും ഫയർഫോക്സ് എക്സ്റ്റൻഷൻ ഉപയോഗിക്കുക എന്നതായിരുന്നു. വല്ലപ്പോഴും ഒരു വീഡിയോ ഡൗൺലോഡ് ചെയ്യാൻ വേണ്ടിമാത്രം ഒരു എക്സ്റ്റൻഷൻ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് ഒരു കടന്നകൈയ്യല്ലേ എന്നോർത്ത് വേറെ മാർഗ്ഗങ്ങളന്വേഷിച്ചപ്പോഴാണ് youtube-dl നെ കുറിച്ച് അറിഞ്ഞത്. youtube-dl ന്റെ ഒരു മെച്ചം നമുക്ക് അതുപയോഗിക്കുന്ന ബാൻഡ്‌‌വിഡ്ത് നിയന്ത്രിക്കാം എന്നാണ്.

ആദ്യത്തെ പരിപാടി youtube-dl ഇൻസ്റ്റാൾ ചെയ്യുക എന്നതാണ്
ഉബുണ്ടു : sudo apt-get install youtube-dl എന്ന് ടെർമിനലിൽ നിന്നും റൺ ചെയ്യുക.
ഫെഡോറ : sudo yum install youtube-dl എന്ന് ടെർമിനലിൽ നിന്നും റൺ ചെയ്യുക.

ഒരു വീഡിയോ youtube-dl ഉപയോഗിച്ച് ഡൗൺലോഡ് ചെയ്യുന്നതെങ്ങനെ എന്നു നോക്കാം. ഇതിനായി KDE 4.10നെ കുറിച്ചുള്ള KDE 4.10: The Fastest And Most Polished KDE Ever എന്ന വീഡിയോ നമുക്ക് ഡൗൺലോഡ് ചെയ്യാം.
(Edit : പോസ്റ്റ് ചെയ്തപ്പോൾ യൂട്യൂബ് ലിങ്കുകൾ ശരിയായി കാണുന്നില്ല അതിനാൽ ഈ പോസ്റ്റിൽ ഷോർട്ട് യുആർഎൽ ഉപയോഗിക്കുന്നു)

ആദ്യം ഏതൊക്കെ ഫോർമാറ്റ്/സൈസ് വീഡിയോ ഉണ്ടെന്നു കണ്ടുപിടിക്കണം. youtube-dl -F  http://goo.gl/8Dwfx  എന്ന കമാന്റ് റൺ ചെയ്താൽ താഴെക്കാണുന്നതുപോലെ ഔട്ട്പുട്ട് കിട്ടും :
[prime@ford lm]$ youtube-dl -F KDE 4.10: The Fastest And Most Polished KDE Ever
[youtube] Setting language
[youtube] Fqe5ZcXJUHI: Downloading video webpage
[youtube] Fqe5ZcXJUHI: Downloading video info webpage
[youtube] Fqe5ZcXJUHI: Extracting video information
Available formats:
46      :       webm    [1080x1920]
37      :       mp4     [1080x1920]
45      :       webm    [720x1280]
22      :       mp4     [720x1280]
44      :       webm    [480x854]
35      :       flv     [480x854]
43      :       webm    [360x640]
34      :       flv     [360x640]
18      :       mp4     [360x640]
5       :       flv     [240x400]
17      :       mp4     [144x176]

നമുക്ക് 720x1280 സൈസിലുള്ള mp4 വീഡിയോ ആണ് വേണ്ടതെന്നു കരുതുക. അത് ഡൗൺലോഡ് ചെയ്യാൻ youtube-dl -f 22  http://goo.gl/8Dwfx എന്നു റൺ ചെയ്താൽ, വീഡിയോ ഡൗൺലോഡാകാൻ തുടങ്ങും:
[prime@ford lm]$ youtube-dl -f 22 KDE 4.10: The Fastest And Most Polished KDE Ever
[youtube] Setting language
[youtube] Fqe5ZcXJUHI: Downloading video webpage
[youtube] Fqe5ZcXJUHI: Downloading video info webpage
[youtube] Fqe5ZcXJUHI: Extracting video information
[download] Destination: Fqe5ZcXJUHI.mp4
[download]   0.8% of 70.17M at  120.36k/s ETA 09:51

ഈ കമാന്റിൽ ചെറിയ എഫ് (മുമ്പത്തേതിൽ ക്യാപ്പിറ്റൽ എഫ് ആയിരുന്നു) ഓപ്ഷനു ശേഷം കൊടുത്ത 22 മുമ്പ് റൺ ചെയ്ത കമാന്റിലെ ഔട്ട്പുട്ടിൽ കണ്ട 720x1280 mp4 നെ സൂചിപ്പിക്കുന്നു. 22നു പകരം മറ്റു നമ്പരേതെങ്കിലും കൊടുത്താൽ അതിനനുസൃതമായ വീഡിയോ ഡൗൺലോഡ് ചെയ്യും. ഇവിടെ "[download] Destination: Fqe5ZcXJUHI.mp4" എന്നു പറഞ്ഞിരിക്കുന്നതു പ്രകാരം Fqe5ZcXJUHI.mp4 എന്ന പേരിലായിരിക്കും വീഡിയോ ഡൗൺലോഡ് ചെയ്തിട്ടുണ്ടാകുക. ഈ പേര് കണ്ടാൽ വീഡിയോ ഏതാണെന്നറിയാൻ പറ്റില്ലല്ലോ? നമുക്ക് ഒരു കമാന്റ്‌‌ ലൈനിൽ നിന്നോ, ഫയൽ മാനേജറുപയോഗിച്ചോ പേരു മാറ്റാം, പക്ഷേ -t എന്ന ഓപ്ഷൻ ‌കൊടുത്താൽ വീഡിയോയുടെ ടൈറ്റിൽ തന്നെ ഫയലിന്റെ പേരായി വരും.
[prime@ford lm]$ youtube-dl -t -f 22 KDE 4.10: The Fastest And Most Polished KDE Ever
[youtube] Setting language
[youtube] Fqe5ZcXJUHI: Downloading video webpage
[youtube] Fqe5ZcXJUHI: Downloading video info webpage
[youtube] Fqe5ZcXJUHI: Extracting video information
[download] Destination: KDE 4.10 - The Fastest And Most Polished KDE Ever-Fqe5ZcXJUHI.mp4
[download]   0.2% of 70.17M at  118.79k/s ETA 10:03

ഇപ്പോൾ ഫയലിന്റെ പേര് KDE 4.10 - The Fastest And Most Polished KDE Ever-Fqe5ZcXJUHI.mp4 എന്നായിട്ടുണ്ട്, Fqe5ZcXJUHI.mp4 നേക്കാൾ മെച്ചമാണ്.

നമ്മൾ ഡൗൺലോഡ് പകുതിവഴിയിൽ  എന്തെങ്കിലും കാരണവശാൽ നിന്നു പോയി എന്നു കരുതുക. വീണ്ടും ഡൗൺലോഡ് ചെയ്യുമ്പോൾ -c എന്ന ഓപ്ഷൻ കൊടുത്താൽ നിന്നുപോയ സ്ഥലത്തുനിന്നും തുടരും.
youtube-dl -c -t -f 22  http://goo.gl/8Dwfx

സാധാരണഗതിയിൽ youtube-dl ലഭ്യമായ മുഴുവൻ ബാൻഡ്‌‌വിഡ്തും ഉപയോഗിക്കും. ആ സമയത്ത് നമുക്ക് ബ്രൗസ് ചെയ്യാൻ ബുദ്ധിമുട്ടായിരിക്കും. -r എന്ന ഓപ്ഷനുപയോഗിക്കുകയാണെങ്കിൽ youtube-dl ഉപയോഗിക്കുന്ന ബാൻഡ്‌‌വിഡ്ത് പരിമിതപ്പെടുത്തുവാൻ സാധിക്കും. ഉദാ:
youtube-dl -r 30 -c -t -f 22  http://goo.gl/8Dwfx ഇവിടെ -r ഉപയോഗിച്ച് സ്പീഡ് 30k ആയി പരിമിതപ്പെടുത്തിയിരിക്കുകയാണ്. ഞാൻ ശ്രദ്ധിച്ച ഒരു കാര്യം, ഒന്നു വച്ചാൽ രണ്ടെന്നെ പോലെ 30 കൊടുത്താൽ 60ൽ ആണ് സ്പീഡ് ലിമിറ്റ് ആകുനെന്നാണ്. 30 വേണമെങ്കിൽ 15 കൊടുക്കേണ്ടി വന്നേയ്കും. ഇതെന്തുകൊണ്ടാണെന്ന് എനിക്കിപ്പോൾ അറിയില്ല.

കുറിപ്പ്:
youtube-dl ന്റെ പേരിൽ KDE യെ പ്രമോട്ട് ചെയ്യുന്നതാരും ശ്രദ്ധിച്ചില്ലെന്നു വിശ്വസിക്കുന്നു.

Edit 2014-April-08

ഉബുണ്ടുവിന്റെ പഴയ വെർഷനുകളിൽ youtube-dl ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ അതിന്റെ പഴയ വെർഷനുകൾ ഇൻസ്റ്റാൾ ചെയ്യപ്പെടുന്നതായാണ് കണ്ടിട്ടുള്ളത്. അതിനാൽ അവ ശരിയായി പ്രവർത്തിക്കണമെന്നില്ല. അങ്ങനെവരികയാണെങ്കിൽ youtube-dl -U  എന്നു കൊടുത്ത് youtube-dl അപ്ഡേറ്റ് ചെയ്തു നോക്കുക.

ഡയസ്പോറയിൽ ഇതു പോസ്റ്റ് ചെയ്തപ്പോൾ സർവശ്രീ Anoop Narayanan, Akhilan | അഖിലൻ **, Jishnu ** എന്നിവർ പങ്കുവെച്ച കൂടുതൽ വിവരങ്ങൾ ചേർക്കുന്നു.
youtube-dl ഇല്ലാത്തവർക്ക് http://www.keepvid.com എന്ന സൈറ്റിൽ പോയാൽ വീഡിയോകൾ ഇതുപോലെ ഡൗൺലോഡ് ചെയ്യാനുള്ള സൗകര്യം ലഭിക്കുന്നതാണ്.

youtube-dl ല്‍ പ്ലേലിസ്റ്റ് ഡൗണ്‍ലോഡ് ചെയ്യുമ്പോള്‍ ഓഡര്‍ പോലെ പേരിനുമുമ്പില്‍ സംഖ്യ കൊടുക്കുവാന്‍ സാധിക്കും. -A --autonumber-size 3 ഇങ്ങനെ കൊടുത്താല്‍ 001, 002... എന്നു് ഫയലിന് prepend ചെയ്തു് വരുന്നതാണ്.
വളരെ ഉപയോഗപ്രദമായ audio conversion ആണ് -x ഓപ്ഷൻ :  -x --audio-format mp3 --audio-quality 0 default ആയി audio extract ചെയ്താല്‍ വീഡിയോ ഫയല്‍ ഡിലീറ്റ് ചെയ്യും -k കൊടുത്താല്‍ അത് ചെയ്യില്ല.

June 3, 2013

കമാന്റ്‌‌ ലൈനിൽ നിന്നും ഓഡിയോ റിക്കോർഡിങ്

 കുറച്ചു ദിവസം മുമ്പ് പ്ലേ ചെയ്തുകൊണ്ടിരിക്കുന്ന ഓഡിയോ കുറച്ച് റിക്കോർഡ് ചെയ്യേണ്ട ആവശ്യമുണ്ടായി. സൗണ്ട് സിസ്റ്റം കുറച്ചുനാൾ മുമ്പ് പണിഞ്ഞ് ഒരു വഴിക്കാക്കിയതിനാൽ  audacityയിൽ കാര്യം നടന്നില്ല. എന്നാൽ പിന്നെ കമാന്റ് ലൈൻ തന്നെ ശരണം എന്നു കരുതി ആ വഴിക്ക് അന്വേഷണം തുടങ്ങി. അവസാനം pacat & sox ഉപയോഗിച്ച് താഴെ പറയുന്നതു പോലെ ഓഡിയോ റെക്കോർഡ് ചെയ്യാമെന്ന് ഒരിടത്തു കണ്ടു.
1. ഓഡിയോ ഡിവൈസ് കണ്ടുപിടിക്കുക : ടെർമിനലിൽ നിന്ന്
pacmd list |grep monitor എന്നു റൺ ചെയ്യുക. ഈ കമാന്റ്‌‌ റൺ ചെയ്യുമ്പോൾ താഴെ കാണുന്നവിധം ഔട്ട്പുട്ട് കിട്ടും. അതിൽ  "alsa_output.pci-0000_00_1b.0.analog-stereo.monitor" എന്നതാണ് നമുക്ക് വേണ്ട സിങ്ക് സോഴ്സ്.
        monitor source: 0
        name:
        monitor_of: 0
                device.class = "monitor"
                alsa_output.pci-0000_00_1b.0.analog-stereo.monitor/#0: Monitor of Internal Audio Analog Stereo

2. pacat --record -d  alsa_output.pci-0000_00_1b.0.analog-stereo.monitor| sox -t raw -r 44100 -e signed-integer -L -b 16 -c 2 - "output.ogg" എന്ന കമാന്റിൽ -d ക്കു ശേഷം നേരത്തേ കണ്ടുപിടിച്ച സിങ്ക് സോഴ്സ് കൊടുത്ത് റൺ ചെയ്താൽ ആ സമയത്ത് കമ്പ്യൂട്ടർ പ്ലേ ചെയ്തുകൊണ്ടിരിക്കുന്ന ഓഡിയോ output.ogg എന്ന ഫയലിൽ കിട്ടും. റിക്കോർഡിങ് നിർത്താൻ ctrl+c അമർത്തുക.

ഇനി ഈ .ogg ഫയൽ mp3 ആക്കണമെങ്കിൽ ffmpeg -i output.ogg output.mp3 എന്ന കമാന്റ്‌‌ റൺ ചെയ്താൽ output.mp3 എന്ന mp3 ഫയൽ കിട്ടും.