Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: запуск и подгрузка видео в страницу в диве
Форумы портала PHP.SU » » HTTP и PHP » запуск и подгрузка видео в страницу в диве

Страниц (1): [1]
 

1. broshurkaplus - 24 Сентября, 2011 - 13:47:58 - перейти к сообщению
здравствуйте опять бьюсь с задачкой

встроил jwplayer на сайт всё работает на отдельной странице
задача на стр превью видео, по нажатию аяксом подгружаем в эту же стр в нужный див плеер

код
в хеде
<script type="text/javascript" src="jwplayer.js"></script>
подключаю его на основной и на подгружаемой стр.
на стр (ехом) выводим в див
PHP:
скопировать код в буфер обмена
  1. <div id="video">
  2.  
  3. <div id="player">Извините, но видео не работает. Возможно не включен flash в браузере.</div>
  4.  
  5. <script type="text/javascript">
  6.   jwplayer("player").setup({
  7.     "flashplayer": "player.swf",
  8.     "file": "gallery_video/'.$row[4].'",
  9.     "image": "gallery_img/'.$row[3].'",
  10.     "start": "0",
  11.     "backcolor": "000099",
  12.     "lightcolor": "FF0000",
  13.     "frontcolor": "ffffff",
  14.     "screencolor": "003333",
  15.     "controlbar": "over",
  16.     "width": "500",
  17.     "height": "375"
  18.   });
  19. </script>
  20. </div>


не пашет ! отдельно открыв подгружаемую стр все ок
а на основной не работает выдаёт тескс для ошибки

как исправить ??????

(полагаю что после формирования дома он не видит) те как мне переназначить появившемуся элементу использовать типа live чтоб оно в подгруженной странице работало или что делать подскажите ютуб и тд не предлагать

как исправить ?????? или в чём проблема ??? натолкните на мысль
2. broshurkaplus - 24 Сентября, 2011 - 18:21:48 - перейти к сообщению
всё придумал разобрался
подсказку нашёл у себя же когда смотрел вставку ссылки на определённый контент из таблицы на вконтакте - чтоб ставило не сылку на страницу а сылку на стр где та часть чо нужна отдельно
посмотрел код сформированного объекта через просмотр кода взял его и в обработчике присвоил нужные значения готовому объекту

PHP:
скопировать код в буфер обмена
  1. <div id="player_wrapper" style="position: relative; width: 500px; height: 375px; "><object type="application/x-shockwave-flash" data="player.swf" width="100%" height="100%" bgcolor="#000000" id="player" name="player" tabindex="0"><param name="allowfullscreen" value="true"><param name="allowscriptaccess" value="always"><param name="seamlesstabbing" value="true"><param name="wmode" value="opaque"><param name="flashvars" value="netstreambasepath=тут путь обрабочику и передаваемый параметр его же и выводим '.$row[0].'%26div%3Dvideo&id=player&file=тут имя папки с видео и имя файла%2F'.$row[4].'&image=тут превью%2F'.$row[3].'&start=0&backcolor=000099&lightcolor=FF0000&frontcolor=ffffff&screencolor=003333&controlbar.position=over"></object></div>


далее его вставляем в обработчик-он же подгружаемая страница получается типа мы не вызываем формирование объекта а он уже есть и передаём нужные парпметры , запускаем с основной и ок пашет в хроме и опере как основные больше не проверял.

а то смотрел уже в сторону открытия видео в модяльном окне..........
(придумаю же сам себе)

теперь нужен скрипт загрузки видео в c проверкой на майм тип fvl с формированием картинки превьюшки и ограничением по весу чтобы юзр мог загрузить своё видео


где копать ?
3. Viper - 24 Сентября, 2011 - 22:49:45 - перейти к сообщению
fileinfo()
FFMPEG
4. broshurkaplus - 25 Сентября, 2011 - 20:09:45 - перейти к сообщению
почитал
понял что нужно ffmpeg-php , но как поставить на свой хостинг не нашёл по яндексу
такое чувство что одну статью поксерили все
пока написал загрузку как картинок, но он не распознаёт
video/x-flv
выдаёт ошибку когда гружу, в понедельник задам хостеру вопрос может не поддерживает такой майм . хотя должно вроде хостер 100гигов даёт и анлим травик

может кто знает сылки подкиньте на подробные статьи
5. Viper - 25 Сентября, 2011 - 21:56:38 - перейти к сообщению
broshurkaplus пишет:
ffmpeg-php
довольно кривой. Юзайте нативный.
broshurkaplus пишет:
но как поставить на свой хостинг
а хостер это позволяет?

broshurkaplus пишет:
video/x-flv
не кодируйте в flv. Кодируйте в f4v, или m4v, или mp4 на крайний случай, т.к. flv несколько устарел.
6. broshurkaplus - 26 Сентября, 2011 - 11:28:54 - перейти к сообщению
мой хостер пишет что мне нельзя

- есть виртуальный хостинг (то, что у Вас сейчас), есть виртуальный сервер (там, где Вы будете иметь root доступ) -
те я не могу установить FFMPEG на мой вирт хост, могу тока на выделеный сервер под руут доступом
можно ли как то обойти это и установить дистрибутив в например корень и оттуда php скриптом запускать? я так понял что FFMPEG работает с командной строки, но можно и через скрипт. или тут проще организовать так
загружать от юзера готовые видео в формате flv или f4v, или m4v , но ведь не каждый сможет перекодировать, т.е. в тех что мой jwплеер поддерживает
подскажите как лучше поступить ?
да и для
flv - video/x-flv
а для f4v, или m4v не нашёл, и по "нативный ffmpeg" и в вариантах неде почитать , выдаёт по 5-7 сайтов
7. Viper - 26 Сентября, 2011 - 13:18:48 - перейти к сообщению
broshurkaplus нельзя, значит никак. Модуль для php вам тоже не поставить в этом случае. Выход - VPS/VDS

broshurkaplus пишет:
а для f4v, или m4v

video/x-f4v и video/x-m4v соответственно.

broshurkaplus пишет:
и по "нативный ffmpeg" и в вариантах неде почитать

http://www[dot]ffmpeg[dot]org/ffmpeg[dot]html

Как установить ищите в гугле.
8. broshurkaplus - 26 Сентября, 2011 - 15:46:41 - перейти к сообщению
спасибо посмотрел , почитал для общего развития.
раз нельзя, то думаю что до VPS/VDS я ещё не дорос

подскажите пожалуйста ещё один момент
реализовал так: предлагаю юзеру ввести 1-название ролика.2-описание,3- картинку превью(если не ввел то ставлю свою по умолчанию)4- сам ролик и загружаю через подгруженную формуу...

когда проверку на майм тип не ставлю. то всё ок - файл грузится переименовывается и перемещается куда надо, а как проверяю на майм - по скрипту пишет "что должен быть в ... формате"
может чото в коде не так гляньте пож.
вот код функции загрузки (масив файл прада по другому обозван)
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $url = "***";
  3.                    //Функция загрузки файлов на сервер
  4. function uploadfile($url,$FILE)
  5. {
  6.  
  7.     //$url - текущая папка, $FILE массив $_FILES
  8.       //Проверяем, существует ли имя.
  9.     if($FILE['FILE']['name'])
  10.     {
  11.           //Проверяем размер файла
  12.           if($FILE['FILE']['size'] != 0 AND $FILE['FILE']['size'] <=10000000)
  13.           {
  14.                //Проверяем загрузился ли файл на сервер
  15.                if(is_uploaded_file($_FILES['FILE']['tmp_name']))
  16.                {
  17.                     // проверяем тип файла
  18.                     if(!function_exists(getimagesize)){die("getimagesize() required.");}
  19.                     $file_types = array("video/x-flv" => "flv");
  20.  
  21.  
  22.                     $img_info = getimagesize($_FILES['FILE']['tmp_name']);
  23.                     $img_type = $img_info["mime"];
  24.                     list($attr)=$img_info;
  25.                     if(!$file_types[$img_type])
  26.                     {
  27.                   global $prichina; $prichina="Просим прощения, но картинка должна быть в flv формате. Пожалуйста, попробуйте ещё раз, ваш файл в формате $img_type";
  28.  
  29. return false;
  30.                     }
  31.                     else
  32.                     {
  33.  
  34.                         global $newname;
  35.                         if($img_type=="video/x-flv"){$newname=$_POST["input_name"].".flv";
  36.                              // проверяем существует ли файл  с указанным именем
  37.                              $prov_name=$newname;
  38.                              $q_proverka_name="SELECT *** FROM *** WHERE ***name='$prov_name'";
  39.                              $r_proverka_name=mysql_query($q_proverka_name);
  40.                              $row = mysql_fetch_row($r_proverka_name);
  41.                                 if($row[0]==$prov_name){
  42.                                 global $prichina; $prichina="Просим прощения, но файл именем : ".$row[0]." уже загружен, пожалуйста попробуйте ещё раз. Спасибо.";
  43.  
  44. return false ;
  45.                                 }
  46.                         }
  47.                          //Перемещаем загруженный файл в необходимую папку $url
  48.                          if(move_uploaded_file($_FILES['FILE']['tmp_name'], $url."/".$newname))
  49.                          {
  50.  
  51.                          //Выводим сообщение что файл обработа и загружен
  52.                          return TRUE;                          
  53.                          }    
  54.                          else
  55.                          {global $prichina; $prichina="Произошла ошибка при перемещении файла в папку".$url." "; return false;}
  56.                        
  57.                     }
  58.                }    
  59.                else
  60.                {global $prichina; $prichina="Прозошла ошибка при загрузке файла на сервер. "; return false;}
  61.           }
  62.           else
  63.           {global $prichina; $prichina="Размер файла должен быть ДО  10Мб"; return false;}
  64.     }
  65.     else
  66.     {global $prichina; $prichina="Файл должен иметь название. ";return false;
  67.     }
  68. }
  69. ?>


тут не срабатывает проверка майм(может масив одно значение) и на размер файла

как бы хотелось проверять video/x-flv video/x-f4v и video/x-m4v ,а то фроде jwплеер не подерживает ави

укажите пожалуйста где может быть ошибка?
уже по всякому крутил, не может он чегото проверить майм video/x-flv!
9. Viper - 27 Сентября, 2011 - 07:18:57 - перейти к сообщению
broshurkaplus пишет:
а то фроде jwплеер не подерживает ави
не вроде а 100% не поддерживает. Есть у DivX web player который проигрывает avi, но его установить и заставить работать крайне тяжело.

Дык getimagesize не получает mime у видео.

PHP:
скопировать код в буфер обмена
  1. $info = finfo_open(FILEINFO_MIME_TYPE);
  2. $mime = finfo_file($info, $filename);
  3. echo $mime;
10. broshurkaplus - 27 Сентября, 2011 - 11:06:24 - перейти к сообщению
спасибо я уже увидел getimagesize , тупой контр+ц контр+в сработал - и юзаю картинку
вчера вечером догнал...

прбовал mime_content_type
$mime=mime_content_type($_FILES['FILE']['tmp_name']);
не работает
,даже в редакторе не подсвечивается


$info = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($info,$_FILES['FILE']['tmp_name']);
или $mime = finfo_file($info,путь до перемещёной картинки);
тоже не работает и не подсвечивается
чёрт знает чо делать!?
11. Viper - 27 Сентября, 2011 - 11:46:42 - перейти к сообщению
broshurkaplus обратите внимание что finfo-функции доступны только начиная с php 5.3
12. broshurkaplus - 27 Сентября, 2011 - 21:03:55 - перейти к сообщению
нашёл функцию,которая вроде проверяет

PHP:
скопировать код в буфер обмена
  1. $filename=$_FILES['FILE']['tmp_name'];                  
  2. $s = file_get_contents($filename, false, null, 0, 3);
  3. if($s === 'FLV'){........................обрабатываем


подсказали, немного потестил, вроде работает
правильная ли она ?

всем спасибо
13. Viper - 28 Сентября, 2011 - 07:15:20 - перейти к сообщению
broshurkaplus в принципе костыль, но если работает, то значит пользуйте Улыбка

 

Powered by ExBB FM 1.0 RC1