четверг, 31 мая 2012 г.

Linux, конвертируем mkv в avi

**********************************************
Данная статья - это кросспостинг с http://my.runtu.org/blog/hawk/linux-konvertiruem-mkv-v-avi
Оригинал статьи ,доступен для прочтения здесь: http://unixa.ru/linux/linux-konvertiruem-mkv-v-avi.html

********************************************
Модно стало последнее время фильмы в mkv загонять, но к сожалению данный формат не понимают большинство DVD плееров. Благо есть Linux, в котором делается все это очень просто и легко одной командой:
mencoder /path/file.mkv -oac mp3lame -ovc copy -o /path/file.avi
Команда перекодирует mkv-файл в mpeg4 с mp3 звуком.
Если mencoder не установлен, то исправим это:
$sudo apt-get install mencoder
На самом деле mencoder имеет множество опций, почитать о которых можно в man mencoder.
Можно например перекодировать видео XVIDом (должен присутствовать в системе) с нужным битрейдом:
$mencoder /path/file.mkv -oac mp3lame -ovc xvid -xvidencopts vhq=1:bitrate=1250 -o /path/file.avi
Можно еще поколдовать с опциями и к примеру обрезать черные поля с помощью фильтра crop, а с помощью scale можно смаштабировать картинку и т.д.

суббота, 12 мая 2012 г.

ReSize fotos in folder в 10 потоков

#coding: UTF-8
import threading, Queue, os
from PIL import Image

queue = Queue.Queue() # создаем очередь 
THREADS = 10

for i in os.listdir('.'):
    if i.split('.')[-1] == 'JPG':
        queue.put(Image.open(i))

def chage_file(img):
    #узнать ориентацию файла
    print 'Открытие файла ' + img.filename
    i_size = img.size
    if i_size[0] > i_size[1]: # если больше то 800х600
        #изменить размер
        r_img = img.resize((800,600), Image.ANTIALIAS)
    else:
        r_img = img.resize((600,800), Image.ANTIALIAS)
        #переименовать и сохранить
    print 'Сохранение файла' + img.filename
    r_img.save('NEW_'+img.filename)

def repeat():  
    while True:  
        try:  
            item = queue.get_nowait() # ждём данные  
        except Queue.Empty:  
            break  
        chage_file(item) # передаем данные в нашу функцию  
        #time.sleep(0.5)  
        queue.task_done() # задача завершена  

for tr in xrange(THREADS):
    t = threading.Thread(target=repeat) # создаем нить
    t.start()

queue.join()

четверг, 10 мая 2012 г.

ReSize fotos in folder

#coding: UTF-8
from PIL import Image
import os
def chage_file(img):
    #узнать ориентацию файла
    print 'Открытие файла ' + img.filename
    i_size = img.size
    if i_size[0] > i_size[1]: # если больше то 800х600
        #изменить размер
        r_img = img.resize((800,600), Image.ANTIALIAS)
    else:
        r_img = img.resize((600,800), Image.ANTIALIAS)
    #переименовать и сохранить
    print 'Сохранение файла'
    r_img.save('NEW_'+img.filename)

def resize_file(orientation, img):
    print 'Изменение размера файла'
    if orientation:
        return img.resize((800,600), Image.ANTIALIAS)
    else:
        return img.resize((600,800), Image.ANTIALIAS)
kolvo_files = 0

for i in os.listdir('.'):
    if i.split('.')[-1] == 'JPG':
        kolvo_files += 1
        chage_file(Image.open(i))
print "Количество обработанных файлов = ", kolvo_files