Как сделать скриншот из flv файла
1. Ставим на сервер ffmpeg
> svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ./ffmpeg
> cd ./ffmpeg
> ./configure
> make
> make install
2. Для создания GD картинки можно использовать, например вот такую функцию:
function Video2GD($filename){ $descriptors = array( 0 => array("pipe","r"), 1 => array("pipe","w"), 2 => array("pipe","w") ); $cmd = 'ffmpeg -i '.$filename.' -vframes 1 -f image2 /dev/stdout'; $cwd = '/tmp'; $env = array(); $process = proc_open($cmd, $descriptors, $pipes ); if (is_resource($process)) { fclose($pipes[0]); $data = stream_get_contents($pipes[1]); fclose($pipes[1]); $error = stream_get_contents($pipes[2]); fclose($pipes[2]); return imagecreatefromstring($data); } return false; }
пример использования функции Video2Gd:
$im = Video2GD('/yourvideofile.flv'); header('Content-Type: image/png'); imagepng($im);
Третья сигнальная
Если естественный язык свойственный представителям homo sapiens называют второй сигнальной системой, то можно ли рассматривать языки программирования как третью сигнальную?
Перегрузка операторов в Python
Оказывается перегрузка операторов есть не только в C++, но и в Питоне тоже...
A class can implement certain operations that are invoked by special syntax (such as arithmetic operations or subscripting and slicing) by defining methods with special names.This is Python's approach to operator overloading, allowing classes to define their own behavior with respect to language operators.
Как разрезать а потом склеить
Встала задачка перебросить небольшой объем данных - гигов восесь с одного сервера на другой... Однако, через вебсервер какой объем не передать, пришлось выкручиваться:
сначала пакуем tar
tar -xzf arhive.tgz ./folder_to_copy/
затем разрезаем
split -b1000000000 arhive.tgz part
затем перекачиваем эти гигабайтные куски на другой сервер, где и собираем:
cat part* > arhive.tgz
просто и красиво :)
правда, как потом оказалось что через ftp можно и восемь гигов преспокойно передать, без всякой резки.