<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Конвертация AVI в FLV на сервере

Конвертация AVI в FLV на сервере

Сегодня я напишу долгожданную статью для многих моих посетителей: "Как конвертировать AVI в FLV на сервере". Возможно, Вы читали одну из моих прошлых статей о том, что AVI на сайте никак не просмотреть. И если пользователь загружает к Вам на сайт видео в формате AVI, надеясь потом его просмотреть (например, как на Youtube), то на сервере необходимо данное видео конвертировать во Flash-формат, например, в FLV. И в этой статье Вы узнаете, как это сделать.

Как я уже говорил, потребуется стороннее приложение, которое называется ffmpeg. Данное приложение должно быть у Вас уже установлено: установка ffmpeg на Denwer.

Теперь такой момент. В интересах простоты я советую Вам скопировать приложение ffmpeg в корень Вашего сайта.

Итак, сейчас у Вас должна быть установлена библиотека php_ffmpeg.dll, а также приложение ffmpeg должно находиться в корне сайта.

Теперь привожу код конвертации AVI в FLV с помощью приложения ffmpeg и библиотеки php_ffmpeg.dll:

<?php
  //Полный путь к исходному файлу
  $input = $_SERVER['DOCUMENT_ROOT']."/video.avi";
  //Имя выходного файла
  $output = "video.flv";
  //Создание объекта ffmpeg_movie
  $ffmpeg = new ffmpeg_movie($input);
  //Увеличиваем ширину и высоту видео в 2 раза
  $width = 2 * $ffmpeg->getFrameWidth();
  $height = 2 * $ffmpeg->getFrameHeight();
  //Вызываем приложение ffmpeg с соответствующими параметрами
  system("ffmpeg -i $input -ar 44100 -s ".$width."x".$height." -f flv $output");
?>

Фактически, мы данным кодом не только провели конвертацию видео из AVI в FLV, но ещё и увеличили размеры видео. Разумеется, Вы можете этого не делать.

Полное описание параметров приложения ffmpeg я приводить здесь не буду, так как их огромное количество. Подробное описание всевозможных параметров описано здесь: http://www.ffmpeg.org/ffmpeg.html. От себя хочу добавить, что данное приложение позволяет изменять не только все возможные параметры видео, но и аудио, поэтому оно является универсальным. Всё, что нужно - это узнать синтксис команды, а дальше Вы можете спокойно вызывать его в PHP с помощью функции system().

Также чтобы использовать это приложение на полную катушку очень важно знать API библиотеки php_ffmpeg.dll, которое подробно описано здесь: http://ffmpeg-php.sourceforge.net/doc/api/.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (26):

ruslan2012 ruslan2012 23.02.2012 21:36:48

Михаил я зделал как ты писал но у меня ни чево не полочилось по советуй куда обратить внимания

Ответить

Admin Admin 23.02.2012 22:11:12

ffmpeg точно установлен? Код скрипта выдаёт какие-нибудь ошибки?

Ответить

ruslan2012 ruslan2012 25.02.2012 23:27:03

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

Ответить

Admin Admin 25.02.2012 23:46:54

Если имеет ввиду размер файла, то так и должно быть. Другой формат - другой размер.

Ответить

Any Litvin Any Litvin 06.06.2012 20:08:41

У меня выдает ошибку Parse error: syntax error, unexpected T_VARIABLE in X:\home\mysite.local\www\index.php on line 31 В чем может быть проблема?

Ответить

Admin Admin 06.06.2012 20:10:49

Возможно, забыли поставить точку с запятой.

Ответить

Any Litvin Any Litvin 06.06.2012 20:17:17

Теперь выдает такое: Warning: Can't open movie file X:/home/mysite.local/www/videos.avi in X:\home\mysite.local\www\index.php on line 31 Fatal error: Call to a member function getFrameWidth() on a non-object in X:\home\mysite.local\www\index.php on line 32

Ответить

Admin Admin 06.06.2012 20:21:47

Значит, не существует такого файла.

Ответить

Any Litvin Any Litvin 06.06.2012 23:48:43

Может дело в коде? <?php $input = $_SERVER['DOCUMENT_ROOT']."/shakira.avi"; $output = "shakira.flv"; $ffmpeg = new ffmpeg_movie($input); $width = 2 * $ffmpeg->getFrameWidth(); $height = 2 * $ffmpeg->getFrameHeight(); system("ffmpeg -i $input -ar 44100 -s ".$width."x".$height." -f flv $output"); ?>

Ответить

Fairy Fairy 28.07.2012 08:14:20

Здравствуйте! Подскажите, пожалуйста, где может быть косяк. Модуль установлен, кадр картинкой вывести удается, но видео не ковертируется из avi в flv. Ничего вообще не происходит, файл не создается. Код я урезала до минимума, дабы проверить. Вот код: $input = $_SERVER['DOCUMENT_ROOT']."/test.avi"; $output = "test.flv"; $ffmpeg = new ffmpeg_movie($input); exec("ffmpeg -i $input $output");

Ответить

Admin Admin 28.07.2012 12:56:13

У этого расширения были проблемы с новой версией PHP. Может быть, проблема в этом.

Ответить

Fairy Fairy 28.07.2012 18:35:10

Спасибо за ответ! А это не странно, что как раз кадры создаются через php оболочку, а не работает функция вызываемая через командную строку? Если дело все-таки в версии, вы не посоветуете другое расширение, которое можно было бы использовать для тех же целей?

Ответить

Fairy Fairy 28.07.2012 20:12:21

О! Проблема была найдена - оно работает, если скопировать ffmpeg.exe , pthreadGC2.dll и SDL.dll в папку с кодом и видео... Подскажите, плз, как настроить это счастье, чтобы он видел эти файлы в usr\bin\ffmpeg\ как написано в инструкции по установке?

Ответить

Admin Admin 28.07.2012 23:08:24

Проверьте что у Вас в PATH правильно указана корневая директория php.

Ответить

Fairy Fairy 29.07.2012 08:55:57

Там все по умолчанию.. =(

Ответить

andre4ik andre4ik 08.01.2013 00:39:31

у меня вот такая ошибка.... Warning: system() has been disabled for security reasons in /home/andre118/public_html/download/includes/fileControl/view.php on line 71

Ответить

Admin Admin 08.01.2013 11:36:44

Функция system() отключена хостером.

Ответить

andre4ik andre4ik 08.01.2013 13:16:57

все разобрался функция заработала просто htacess поврежден был...Но видео тепеь тоже не конвертируем страничка тупо виснет.... А кстати есть разница если заместо ави файла вудет мп4..?

Ответить

Admin Admin 08.01.2013 13:48:53

Страница виснет, потому что этот процесс не двух секунд, а, возможно, и двух дней, если видео огромное.

Ответить

andre4ik andre4ik 08.01.2013 17:48:25

ну видео всго семь mb формат mр4 страничку не грузит только шапку грузит и файл переформатированый не создается.... Может я не туда вставляю? Я этот код вставляю в код загруз центра сайта там где встроен код плеера для просмотра видео онлайн это правильно?

Ответить

Barahten Barahten 22.02.2013 08:25:44

Михаил, здравствуйте! Установил ffmpeg по вашей инструкции, все прошло без проблем, тестовый файл выводит "Все работает!", конвертирует в flv без проблем. Нсколько я знаю, ffmpeg кодирует не только в flv.Решил попробовать перекодировать в mp4. Выставляю -f mp4, на выходе получаю файл mp4 со звуком но без изображения. Если поставить -f mp4 -vcodec libx264 то вообще не кодируется: создается файл mp4 размером в 1кб, ну и соответсвенно флеш плеер не воспроизводит. В чем может быть проблема. Спасибо

Ответить

Admin Admin 22.02.2013 10:13:10

Попробуйте другие ролики преобразовать в mp4.

Ответить

Barahten Barahten 22.02.2013 10:44:44

Ни один ролик не конвертируется в MP4

Ответить

lev_100rus lev_100rus 26.07.2013 03:14:03

У вас ошибка в слове "количество", в предложении "так как их огромное количетво"

Ответить

Admin Admin 26.07.2013 19:39:35

Спасибо, исправил!

Ответить

shurakana shurakana 01.04.2015 01:25:24

Скажите, почему ваш пример работает, а когда пытаюсь конверnировать mp4 в mp4 таким же методом, только наоборот уменьшая размер видео, ничего не работает. Подскажите пожалуйста в чем причина? Все подряд пробовал, создаются файлы - 0 byte;

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.