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’а.

Contact

518 4067
220 5532

icq 255018290

info@redsoft.ru

 

 

Redsoft-участник top25 рейтинга рунета

Redsoft - участник Top25
рейтинга студий России