С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Bomboos
15 / 15 / 3
Регистрация: 04.10.2009
Сообщений: 219

функции определения параметров видио

21.03.2010, 14:50. Показов 5135. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в инете видил видио сайты, в которых написана инфа о видио. Битрейд, сколько идет и т.п. Как это можно сделать? Ах да, и есче скриншоты из видио. . .

Добавлено через 16 часов 35 минут
1. качаем уже собранный php ffmpeg от Sergey Fedotov
2. распаковываем архив
3. копируем файл php_ffmpeg.dll в папку php/extensions
4. копируем файлы avformat-51.dll, avcodec-51.dll, avutil-49.dll ,pthreadGC2.dll в папку windows/system32
5. добавляем в php.ini строку: extension=php_ffmpeg.dll
6. перезапускаем Apache
7. проверяем всё ли у нас получилось var_dump(extension_loaded('ffmpeg')) или через phpinfo()
скорей всего у нас получилось так что ознакомимся с функциями =)
Перевод официальной документации (API Docs)
$movie = new ffmpeg_movie(String path_to_media, boolean persistent)
Открыть аудио или видео файл и Вернёт объект.
path_to_media - Путь к аудио или видео файлу
persistent - Открыть как постоянный ресурс. О постоянных ресурсах
читайте в документации по PHP
$movie->getDuration()
Вернёт продолжительность аудио или видео файла в секундах.
$movie->getFrameCount()
Вернёт количество кадров (фреймов) аудио или видео файла.
$movie->getFrameRate()
Вернёт частоту кадров видео в кадрах в секунду (fps - frame persecond)
$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()
Возвращает время создания кадра.
$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_add - ffmpeg_frame обьект для добавления в конец
анимированного gif'а.
Теперь рассмотрим некоторые примеры
1. Узнаём информацию о видео файле .
Код: PHP
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
// получаем продолжительность и размеры видео 
$movie = new ffmpeg_movie("/www/1.avi");
echo "Продолжительность фильма: ";
// так как мы получаем секунды надо нам их перевести в человечный вид ЧЧ:ММ:CC
// для этого мы и используем функцию gmdate я думаю фильмов длиной по несколько дней у вас нет =)
echo "<b>".gmdate("H:i:s",$movie->getDuration())."</b><br />"; 
// теперь выведем размерв нашего фильма
echo "Размеры фильма: ";
echo "<b>".$movie->getFrameWidth()." x ".$movie->getFrameHeight()."</b>"; 
?>
2. Получаем кадр.
Код: PHP
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
//получаем скриншот по средствам php ffmpeg 
// путь до файла
$file = "/www/1.avi";
// кадр который будем выхватывать
$frame = 150; 
// получаем кадр
$movie = new ffmpeg_movie($file);
$image = $movie->getFrame($frame);
$show_img = $image->toGDImage(); 
// выводим его
header("Content-type: image/jpeg");
 imagejpeg($show_img);
 imagedestroy($show_img);
?>
3. Получаем и редактируем кадр.
Код: PHP
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
// получаем скриншот по средствам php ffmpeg и уменьшаем его 
// путь до файла
$file = "/www/1.avi";
// кадр который будем выхватывать
$frame = 150;
// максимальный размер по высоте 
$max_width = 150; 
// получаем кадр в gd
$movie = new ffmpeg_movie($file);
$image = $movie->getFrame($frame);
$show_img = $image->toGDImage(); 
// редактируем то что в gd
$new_image = new ffmpeg_frame($show_img);
//вычисляем старые значения ширины и высоты
$old_width = $new_image->getWidth();
$old_heighgt = $new_image->getHeight();
// соотношение сторон
$mov_ratio = $old_width/$old_heighgt;
if($old_width > $max_width){
$new_width = $max_width;
}
// задаём новые параметры
$new_height = $new_width / $mov_ratio;
// изменяем размер
$new_image->resize($new_width, $new_height);
$new_show_img = $new_image->toGDImage(); 
// выводим его
header("Content-type: image/jpeg");
 imagejpeg($new_show_img);
 imagedestroy($new_show_img); 
?>
4. Создаём анимированный GIF.
Код: PHP
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// создаём анимированый гиф
// путь до файла
$file = "/www/1.avi"; 
// поехали =)
$movie = new ffmpeg_movie($file); 
// создаём анимацию
$gif=new ffmpeg_animated_gif("/www/primer.gif",100 ,100 ,24); 
for ($frame = 150; $frame <= 200; $frame++) {
$image = $movie->getFrame($frame);
$gif->addFrame($image);
} 
?>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2010, 14:50
Ответы с готовыми решениями:

Составить блок схему к готовому коду определения области определения функции
Program Project2; var x,y: real; begin writeln('Введите значение х'); write('х='); readln(x); if x &lt; 0.1*pi then y :=...

Инструкция определения функции и выражение определения функции
Всем добрый вечер. Задался вопрос, чем собственно отличается инструкция определения функции от выражения определения функции? Ведь на...

Методы определения параметров ионисторов
Может у кого-то есть информация по методам определения параметров ионисторов? схемы измерения параметров? очень нужна такая информация.. ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2010, 14:50
Помогаю со студенческими работами здесь

Определения параметров цепи при резонансе
Резонансная цепь имеет следующие параметры: J=4 (А) UL=2*sqrt(2) (В) R2=1 (Ом) P=16 (Вт) Определить: R1, XL,XC У нас источник...

Создать модуль определения параметров треугольника
Ребят, помогите с модулем пожалуйсто. Создать модуль Triangle, который можно использовать в разных программах для определения параметров...

програмулина для определения временных параметров сети
Мне необходимо написать программу, для измерения временных параметров сети например: локальная сеть. пользователь...

Составить программу для определения значений параметров линейного массива
Составить программу для определения значений параметров линейного массива. Всем нечетным элементам присвоить значение 3

Составить программу определения значений заданных параметров одномерного массива
Составить программу определения значений указанных нижу параметров одномерного массива: Произведение кубов отрицательных элементов массива....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru