Закрыть Авторизация

     

ffmpeg-php

Ffmpeg-php это модуль для php который позволяет делать некоторые вещи с видео. Для того чтоб это штука заработала надо иметь сурцы ffmpeg’а ( в основном сурцы двух библиотек libavcodec и libavformat ибо ffmpeg-php это по сути «гейт» этих библиотек в php ) и собранный с --enable-shared ffmpeg и библиотеку gd2 (нафиг вам только свойства видео – с ГД можно кадры выдирать).

Собирается ffmpeg-php просто:

tar -xjf ffmpeg-php-X.x.x.tar.gz
cd ffmpeg-php-X.x.x/
phpize
./configure && make
make install (под рутом )

Далее получаем бинарик ffmpeg.so в папке module . Этот бинарик надо засунуть в каталог который extension_dir в php.ini и прописать в php.ini extension=ffmpeg.so после чего если php как модуль у веб сервера apache перегрузить вебсервер (apachectl restart). Далее делается наблюдаем результаты функции phpinfo() – если там есть что-то про ffmpeg – значить модуль подключился. Теперь в php есть ещё 3 класса от которых можно порождать обьекты. Ну и перевод документации по API. За перевод сильно не пинайте =)) . Оригинальное описание описание API : http://ffmpeg-php.sourceforge.net/apidoc.php


ffmpeg_movie обьекта методы.

Метод Описание
$movie = new ffmpeg_movie(String path_to_media, boolean persistent) Открыть аудио или видео файл и возвратит объект.
  • path_to_media – Путь к аудио или видео файлу
  • persistent – Открыть как постоянный ресурс. О постоянных ресурсах читайте в документации по PHP
$movie->getDuration() Возвратит продолжительность аудио или видео файла в секундах.
$movie->getFrameCount() Возвратит количество кадров (фреймов) аудио или видео файла.
$movie->getFrameRate() Возвратит частоту кадров видео в кадрах в секунду (fps - frame per second)
$movie->getFilename() Возвратит путь к видео или аудио файлу
$movie->getComment() Возвратит поле комментария из аудио или видео файла
$movie->getTitle() Возвратит поле заголовка из аудио или видео файла
$movie->getAuthor() псевдоним $movie->getArtist() Возвратит поле «автор» из видео файла или «автор» из ID3 поля mp3 файла
$movie->getCopyright() Возвратит поле «авторское право» из аудио или видео файла
$movie->getArtist() Возвратит ID3 поле «Артист» из mp3 файла
$movie->getGenre() Возвратит ID3 поле «Жанр» из mp3 файла
$movie->getTrackNumber() Возвратит ID3 поле «номер дорожки» из mp3 файла
$movie->getYear() Возвратит ID3 поле «Год» из mp3 файла
$movie->getFrameHeight() Возвратит высоту видео в пикселях
$movie->getFrameWidth() Возвратит ширину видео в пикселях
$movie->getPixelFormat() Возвратит формат пикселов видео
$movie->getBitRate() Возвратит скорость потока(битрейт) видео или аудио файла в битах в секунду
$movie->getVideoBitRate() Возвратит скорость потока(битрейт) видео в битах в секунду.
Замечание : Работает только с файлами у которых постоянный битрейт
$movie->getAudioBitRate() Возвратит скорость потока(битрейт) аудио у видео или аудио файла в битах в секунду.
$movie->getAudioSampleRate() Возвратит скорость дискретизации аудио у видео или аудио файла в битах в секунду.
$movie->getFrameNumber() Возвратит текущий номер кадра.
$movie->getVideoCodec() Возвратит название видео кодека который использован для видео файла как строку
$movie->getAudioCodec() Возвратит название аудио кодека который использован видео файл как строку
$movie->getAudioChannels() Возвратит количество аудио каналов (1 моно 2 стерео и т д) как целое число
$movie->hasAudio() Возвратит логическое значение соответствующие наличию или отсутствию аудио
$movie->getFrame([Integer framenumber]) Возвратит кадр из видео как ffmpeg_frame объект. Возратит логическую ложь (false) если кадра нет
  • framenumber – Номер кадра который надо возратить. Если framenumber не определен то возращается следующий кадр из видео.
$movie->getNextKeyFrame() Возвратит следующий ключевой кадр как ffmpeg_frame объект. Возратит логическую ложь (false) если кадра нет


ffmpeg_frame object methods

Метод Описание
$frame = new ffmpeg_frame(Resource gd_image) Создаст обьект ffmpeg_frame из ресурса GD картинки.

Замечание : Функция недоступна если нет библитеки GD.

$frame->getWidth() Возвратит ширину кадра.
$frame->getHeight() Возвратит высоту кадра.
$frame->getPTS() alias $frame->getPresentationTimestamp() Возвращает время создания кадра.
(Return the presentation time stamp of the frame).
$frame->resize(Integer width, Integer height [, Integer crop_top [, Integer crop_bottom [, Integer crop_left [, Integer crop_right ]]]])
Изменяет размер и обрезает кадр (Обрезание встроено в изменение размера картинка ffmpeg и сделал его для полноты)
  • width – Новая ширина кадра (должено быть натуральным числом)
  • height – Новая высота кадра (должено быть натуральным числом)
  • croptop – Удалить [croptop] рядов пикселов с верху кадра.
  • cropbottom – Удалить [cropbottom] рядов пикселов с низу кадра.
  • cropleft – Удалить [cropleft] рядов пикселов с лева у кадра..
  • cropright – Удалить [cropright] рядов пикселов с права у кадра..
Замечание: Обрезание всегда происходит до измения размера кадра. Значения параметров обрезания должны быть натуральными числами.
$frame->crop(Integer crop_top [, Integer crop_bottom [, Integer crop_left [, Integer crop_right ]]]) Обрезать кадр.
  • croptop – Удалить [croptop] рядов пикселов с верху кадра.
  • cropbottom – Удалить [cropbottom] рядов пикселов с низу кадра.
  • cropleft – Удалить [cropleft] рядов пикселов с лева у кадра..
  • cropright – Удалить [cropright] рядов пикселов с права у кадра..

 


Замечание : Параметры должны быть натуральными числами
$frame->toGDImage() Возвращает truecolor GD картинку (ресурс) кадра

Замечание : Функция недоступна если нет библитеки GD.

ffmpeg_animated_gif Объект Методы

Методы Описание
$gif = new ffmpeg_animated_gif(String output_file_path, Integer width, Integer height, Integer frame_rate, [Integer loop_count]) Создает новый ffmpeg_animated_gif обьект
  • output_file_path – Путь в файловой системе куда будет записан анимированный gif .
  • width – Ширина анимированого gif’а
  • height – Высота анимированного gif’а
  • frame_rate – Частота кадров анимированного gif’а в кадрах в секунду
  • loop_count – Количество повторений анимации. Укажите 0 для бесконечного повторения или пропустите параметр для отключения повторений.

 

$frame->addFrame(ffmpeg_frame frame_to_add) Добавляет кадр в конец анимированного gif’а.
  • frame_to_addffmpeg_frame обьект для добавления в конец анимированного gif’а.
Подпишись!
На сайте перечислены вопросы и ответы по seo, рекламе и рарзработке.