Autor | Zpráva | ||
---|---|---|---|
kironet96 Profil |
#1 · Zasláno: 29. 8. 2014, 11:19:20
Dobrý den,
chtěl bych se zeptat. Nevíte jestli je možné v PHP při uploadu videa určit limit na trvání videa? Např. limit je 1min, a uživatel nahrává 5min, tak aby ho to nepustilo. Díky. |
||
Joker Profil |
#2 · Zasláno: 29. 8. 2014, 11:32:30
Tak pokud je na serveru nějaký modul, který dokáže zjistit délku toho videa, tak ano.
|
||
kironet96 Profil |
#3 · Zasláno: 29. 8. 2014, 12:22:06
Joker:
„Tak pokud je na serveru nějaký modul, který dokáže zjistit délku toho videa, tak ano.“ A nevíš jaký modul to dokáže? Díky :) |
||
MartinP Profil * |
#4 · Zasláno: 30. 8. 2014, 12:16:14
To záleží na formátu nahraného videa.
|
||
janbarasek Profil |
#5 · Zasláno: 30. 8. 2014, 18:36:26
Rád bych ještě poznamenal, že tyto věci se na serveru dají obvykle zjistit až po dokončení uploadu (což zbytečně v případě neúspěchu žere výkon). Hodně lidí má v prohlížeči flash, který by toto mohl ověřit už během uploadu a uživatel tak nebude zbytečně čekat na kompletní přenesení, když by to pak stejně skončilo neúspěchem.
|
||
xROAL Profil |
#6 · Zasláno: 30. 8. 2014, 19:02:28
janbarasek:
„Hodně lidí má v prohlížeči flash, který by toto mohl ověřit už během uploadu“ Pri tomto ma napadol aj HTML5 <video> element. Bolo by možné načítať do neho video z užívateľovho disku (createObjectURL() , alebo FileReader() ) následne, po načítaní, zistiť jeho trvanie z atribútu videoElement.duration a až potom prípadne pokračovať k uploadu. Neviem však, akú podporu v prehliadačoch by takéto riešenie malo.
|
||
kironet96 Profil |
#7 · Zasláno: 31. 8. 2014, 14:44:15
Diky, zkusím to zatim takhle, pak si kdyžtak nainstalují extension.
|
||
Časová prodleva: 5 dní
|
|||
kironet96 Profil |
MartinP:
„To záleží na formátu nahraného videa.“ Potřebují teda MP4. Chytil jsem se za FFMPEG, ale zjistil jsem že prý funguje jen na php verzi 5.3. Je nějaka alternativa ? Nebo jaký bych měl na to použít modul? Díky :) |
||
Jan Tvrdík Profil |
#9 · Zasláno: 5. 9. 2014, 18:49:31
|
||
kironet96 Profil |
Jan Tvrdík:
„Viz také Pouzivani php_ffmpeg.dll knihovny v php“ Díky, ale nějak jsem to už konečně nainstaloval. Teď zase nemohu najít jak convertovat uploadováne vide do formatu MP4... Většina ukázek co jsem našel jsou spíš kódy do terminálu. Např. toto: http://stackoverflow.com/questions/3119797/ffmpeg-settings-for-converting-to-mp4-and-ogg-for-html5-video Poradí mi někdo nějaký tutorial? Děkuji předem |
||
Jan Tvrdík Profil |
#11 · Zasláno: 5. 9. 2014, 19:25:00
Já si pořád myslím, že github.com/PHP-FFMpeg/PHP-FFMpeg je nejlepší řešení.
|
||
kironet96 Profil |
Jan Tvrdík:
„Já si pořád myslím, že github.com/PHP-FFMpeg/PHP-FFMpeg je nejlepší řešení.“ Jop, jen něják nevím jak ji nainstalovat do linuxu, spíš jak spustit ten .json script. |
||
kironet96 Profil |
Jan Tvrdík:
„Já si pořád myslím, že github.com/PHP-FFMpeg/PHP-FFMpeg je nejlepší řešení.“ Tak jsem to nainstalovál, ale hlásí mi to chybu při convertaci videa. Fatal error: Uncaught exception 'Alchemy\BinaryDriver\Exception\ExecutionFailureException' with message 'ffmpeg failed to execute command '/usr/bin/ffmpeg' '-y' '-i' '1.avi' '-async' '1' '-metadata:s:v:0' 'start_time=0' '-s' '300x300' '-vcodec' 'libx264' '-acodec' 'libfaac' '-b:v' '1000k' '-refs' '6' '-coder' '1' '-sc_threshold' '40' '-flags' '+loop' '-me_range' '16' '-subq' '7' '-i_qfactor' '0.71' '-qcomp' '0.6' '-qdiff' '4' '-trellis' '1' '-b:a' '128k' '-pass' '1' '-passlogfile' '/tmp/ffmpeg-passes540ade4b487cayok4f/pass-540ade4b489ea' 'export-x264.mp4'' in /home/admin/web/default.domain/public_html/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php:100 Stack trace: #0 /home/admin/web/default.domain/public_html/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php(72): Alchemy\BinaryDriver\ProcessRunner->doExecutionFailure(''/usr/bin/ffmpe...') #1 /home/admin/web/default.domain/public_html/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/AbstractBinary.php(209): Alchemy\Binary in /home/admin/web/default.domain/public_html/src/FFMpeg/Media/Video.php on line 168 Použil jsem pro test kus kódu co je v github. Viz.: <?php require 'vendor/autoload.php'; $ffmpeg = FFMpeg\FFMpeg::create(); $video = $ffmpeg->open('1.avi'); $video ->filters() ->resize(new FFMpeg\Coordinate\Dimension(300, 300)) ->synchronize(); $video ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10)) ->save('frame.jpg'); $video ->save(new FFMpeg\Format\Video\X264(), 'export-x264.mp4') ->save(new FFMpeg\Format\Video\WMV(), 'export-wmv.wmv') ->save(new FFMpeg\Format\Video\WebM(), 'export-webm.webm'); ?> tu je vypis po zadání příkazu ffmpeg do terminálu [root@vps90687 public_html]# ffmpeg FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6) configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab libavutil 50.15. 1 / 50.15. 1 libavcodec 52.72. 2 / 52.72. 2 libavformat 52.64. 2 / 52.64. 2 libavdevice 52. 2. 0 / 52. 2. 0 libavfilter 1.19. 0 / 1.19. 0 libswscale 0.11. 0 / 0.11. 0 libpostproc 51. 2. 0 / 51. 2. 0 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... |
||
Jan Tvrdík Profil |
#14 · Zasláno: 7. 9. 2014, 02:45:54
kironet96:
Když spustíš ručně ten příkaz přes příkazovou řádku, tak se provede? /usr/bin/ffmpeg '-y' '-i' '1.avi' '-async' '1' '-metadata:s:v:0' 'start_time=0' '-s' '300x300' '-vcodec' 'libx264' '-acodec' 'libfaac' '-b:v' '1000k' '-refs' '6' '-coder' '1' '-sc_threshold' '40' '-flags' '+loop' '-me_range' '16' '-subq' '7' '-i_qfactor' '0.71' '-qcomp' '0.6' '-qdiff' '4' '-trellis' '1' '-b:a' '128k' '-pass' '1' '-passlogfile' '/tmp/ffmpeg-passes540ade4b487cayok4f/pass-540ade4b489ea' 'export-x264.mp4' |
||
kironet96 Profil |
Jan Tvrdík:
Vypíše mi to: [avi @ 0x24c7670]max_analyze_duration reached Video má 36 vteřin. Dál jsem tam video co má 7 vteřin, tak to hází chybu: libavutil 50.15. 1 / 50.15. 1 libavcodec 52.72. 2 / 52.72. 2 libavformat 52.64. 2 / 52.64. 2 libavdevice 52. 2. 0 / 52. 2. 0 libavfilter 1.19. 0 / 1.19. 0 libswscale 0.11. 0 / 0.11. 0 libpostproc 51. 2. 0 / 51. 2. 0 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1.avi': Metadata: major_brand : mp42 minor_version : 1 compatible_brands: mp41mp42isom Duration: 00:00:07.00, start: 0.000000, bitrate: 1652 kb/s Stream #0.0(und): Video: h264, yuv420p, 480x480 [PAR 1:1 DAR 1:1], 1520 kb/s, 29.71 fps, 30 tbr, 90k tbn, 60 tbc Stream #0.1(und): Audio: aac, 44100 Hz, mono, s16, 126 kb/s Unrecognized option 'metadata:s:v:0' PS: Ten passlogfile se mi neukládá. |
||
kironet96 Profil |
#16 · Zasláno: 9. 9. 2014, 11:12:38
Furt se mi to nějak nepovedlo rozběhat.
Není problém v těch scriptech? Protože např. exec('ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4'); Ale zalíbila se mi ta knihovna. |
||
Časová prodleva: 10 let
|
0