eregi Posted January 30, 2008 Report Share Posted January 30, 2008 M, iekš http://www.phpclasses.org dabūju ffmpeg klasi ar, kuras palīdzību varu konvertēt video uz flv formātu un uztaisīt titulbildi. klase- http://paste.php.lv/6809 funkcijas - http://paste.php.lv/6810 funkcija atkārtojās veselas divas reizes, jo ar pirmo reizi video tiek pārkonvertēts, bet ar otro izņemta titulbilde. 1.) Vai ir iespējams, ka ar vienu reizi izveido uzreiz gan titulbildi gan pārkonvertē video? Jo līdz šim izmantoju 2 funkcijas, šķiet, ka iespējams tas ir, tik kā? 2.) Kā panākt, lai izgriež vairākas titulbildes, piem 4 15 40 sekundēs, itkā atradu, kā panākt, lai izgriež noteiktā periodā - $ffmpeg->extractFrames('00:00:02', '00:00:04', 1); 3.) Kā panākt pēc iespējas labāku effektu, lai samazinātu video izmērus, jo nereti sanāk, ka tas gandrīz ir pat lielāks, nekā pirms konvertēšanas, piem konvertējot 216 mb lielu failu sanāca 180 mb, nu iespējams, ka var labāk? Link to comment Share on other sites More sharing options...
Vebers Posted January 30, 2008 Report Share Posted January 30, 2008 1) ir iespejams izsauc to otru funkciju no pirmas. (optimizaacija nekaada, cik gars tik plats, bet pasam tev bus mazak jaraksta. Taka nav verts iepringt, nekada optimizaacija ipasa nebus (oky, vispar nebus). 2) nu re , pats jau atradi ka to dabut gatavu... 3)ffmpeg ir iespeejams noraadit faila izmeerus kad vinju konvertee.. paraknjaajies par savu klasi. Link to comment Share on other sites More sharing options...
eregi Posted January 30, 2008 Author Report Share Posted January 30, 2008 Veber uz #2, bet tas taču domāts, lai izgrieztu periodus, bet man vajag ar intervālu, lai izgriež piem tikkai 1sec 14sec un 50sec (: kā Tu #1 domāj? Link to comment Share on other sites More sharing options...
Vebers Posted January 30, 2008 Report Share Posted January 30, 2008 Tur vienkārši norādi to periodu vienādu un tad 1 freimu, bet paskatījos tevis iedotajā klasē tur jau ir gatava metode $ffmpeg->extractFrame($extract_begin_timecode='00:00:00') , kas būtībā izdara to pašu ko es jau tev centos pateikt : public function extractFrame($extract_begin_timecode='00:00:00') { $this->extractFrames($extract_begin_timecode, $extract_begin_timecode, 1, 1); } #1, Cik sapratu no tevis tad 2 funckciju vietā vēlies to panākt ar vienu vai ne ? tjip: function a() { echo 'a'; } function b() { echo 'b'; } gribi panākt tā ? function ab() { a(); b(); } Ja tā ir, tad tur nu nekāda optimizācija nav, tikai īsām pašam kodējot jāraksta :) Link to comment Share on other sites More sharing options...
eregi Posted January 30, 2008 Author Report Share Posted January 30, 2008 #1 $ffmpeg->extractFrames($extract_begin_timecode='00:00:01', $extract_end_timecode='00:00:40', $frames_per_second=1, $frame_limit=3); mēģinot šād man izgriež tos trīs freimus bet visi no pirmajām sec - 1, 2, 3, nu itkā loģiski, bet kā tad ar to intervālu piem, limit 3 un int 10 sec. #2 nu pašlaik ir - function ab() { a(); b(); } vet vajadzētu kaut kā panākt, ka ar a() viss izdarās, piem ievietot tajā a() $ffmpeg->extractFrames($extract_begin_timecode='00:00:01', $extract_end_timecode='00:00:40', $frames_per_second=1, $frame_limit=3); vai kādu citu rindiņu, kura atbildīga par freimiem. Link to comment Share on other sites More sharing options...
Vebers Posted January 30, 2008 Report Share Posted January 30, 2008 #1 Lasīt māki ? :) tur taču viss f-jā aprakstīts! Es pirmo reizi redzu to klasi un ir skaidrs ko no manis tā f-ja prasa. $extract_begin_timecode='00:00:01', sākuma laiks no kura sāks griezt freimus. $extract_end_timecode='00:00:40', beigu laiks līdz kuram tiks griezti freimi. $frames_per_second=1, cik freimus izgriezt sekundē (škiet ka normāliem video bija 24 freimi sekundē) $frame_limit=3 limits cik freimus izgriezt. Ja negribi tos freimus pēc kārtas tad izmanto šo metodi: extractFrame($extract_begin_timecode='00:00:00') un nāksies vien 3x izsaukt šo f-ju ar dažādiem laikiem. #2 un kur problēma ? F-jas nemāki definēt? Link to comment Share on other sites More sharing options...
eregi Posted January 30, 2008 Author Report Share Posted January 30, 2008 #1 Tieši no šī es pirms topika veidošanas vēlējos izvairīties. sanāks kodā +60 rindas... Bet, ja to funkciju izskauks trīs atsevišķas reizes, kā panākt, lai kad seivo pieseivo klāt tā freima numuru, piem pašlaik, ja seivo vairākus freimus uzreiz tad viņš noseivo ar freima numuru piem nos-(freimanr).jpg p; 199299292-1.jpg 199299292-2.jpg 199299292-3.jpg ja laidīšu pa atsevišķām funkcijām, tad neseivos ar atsevišķo freimanr. p.s tāds muļķīgs jaut vai man atsevišķi kāds eksteņšans jāliek priekš lighttpd, lai b'tu ajax atbalsts, jo man takā parasti ajax skripti neizpildās, Link to comment Share on other sites More sharing options...
Vebers Posted January 30, 2008 Report Share Posted January 30, 2008 Kāpēc +60 rindas? uztaisi pats savu f-ju kas extracto no norādītā video tos freimus. Bāc tu laikam toč lasīt nemāki -> paskaties pats tajā klasē! Citāts no tavas klases: # /** * Returns the last outputted file that was processed by ffmpeg from this class. * * @return mixed array|string Will return an array if the output was a sequence, or string if it was a single file output */ public function getLastOutput() { return $this->files[0]; } /** * Returns all the outputted files that were processed by ffmpeg from this class. * * @return array */ public function getOutput() { return $this->files; } Nē, nav jainstalē atsevišķš extension. Ja tu zinātu kas ir ajax tad saprastu ka ajax veic no klienta pārlūkprogrammas pieprasījumu uz serveri saņem datus un tad vari ar tiem rīkoties. Link to comment Share on other sites More sharing options...
eregi Posted January 30, 2008 Author Report Share Posted January 30, 2008 lasīt maku, tik dažreiz ar to koda izprašanu pieklibo.. (: iekš funkcijas mēģināju - $ffmpeg->extractFrame('00:00:01','00:00:10','00:00:40'); un iekš klases extractFrame($extract_begin_timecode='00:00:00',$extract_second_timecode='00:00:00',$extract_third_timecode='00:00:00') { $this->extractFrames($extract_begin_timecode, $extract_begin_timecode, 1, 1); $this->extractFrames($extract_second_timecode, $extract_second_timecode, 1, 1); $this->extractFrames($extract_third_timecode, $extract_third_timecode, 1, 1); } nekāds rez. par ajax, saprotu, ka tas notiek starp serveri un lietotāju, bet mēģināju palaist parastu <% response.expires=-1 response.write(time) % nekāds rez. Link to comment Share on other sites More sharing options...
Vebers Posted January 30, 2008 Report Share Posted January 30, 2008 Ok, es padodos nekādi nevaru palīdzēt ja nav pamatzināšanas... Link to comment Share on other sites More sharing options...
eregi Posted January 30, 2008 Author Report Share Posted January 30, 2008 (edited) žēl.. pamatzināšanas šķiet man ir, bet iespējams, ka kaut ko neizprotu. Vismaz parādītu, kur, ko. Edited January 30, 2008 by eregi Link to comment Share on other sites More sharing options...
Recommended Posts