Merhaba,
Bu, sizinle paylaştığım ilk içerik olacak. Bir selamdan öteye gidip; bir programcı olarak işe yarar bir şeyler paylaşmayı amaçlıyorum.
"Özgün resim oluşturmak, bulmak özellikle resim sitesi sahipleri için sıkıntılı bir süreç. Seo açısından özgünlüğün önemi ortadayken görselleri özgünlüğün dışında tutmak mantıklı değil. Bu noktadaki en beklendik soru özgün görselin nereden bulunacağıdır. Ancak bu soruyu soruyorsanız muhtemelen aklınıza farklı resim sitelerinden bir görseli indirip, ters çevirmek, çözünürlüğüyle oynamak, üzerine watermark/logo basmak veya fotoğraf makinenizle akşam yiyeceğiniz yumurtalı ıspanağın fotoğrafını çekmek geliyordur. Bu projede bunların hiçbirini yapmayacağım. Php, Youtube-dl, FFmpeg kullanarak devinimsel görselleri (video) durağan görsellere (resim) çevireceğim. Böylece, hiçbir arama motorunun benzetemediği ve/veya birebir eşleştiremediği özgün görseller elde edeceğim. Çılgınca..."
Her şey tamamsa başlayalım. Dubaiyi tanıtan Ultra-HD bir video (
https://www.youtube.com/watch?v=n8d79M0LtfY ), görsellerimizin kaynağı olacak. Youtube-dl ile videoyu indirip; FFmpeg ile temel süre bilgilerini aldıktan sonra 20 adet görseli videonun ilk 10 dakikalık bölümünden -videonun 10 dakikadan kısa olması sorun teşkil etmez- sökeceğim.
<?php
function url_yap($uri) {
$uri=strip_tags($uri);
$uri=trim($uri);
$uri=str_replace('Ş','s',$uri);
$uri=str_replace('ş','s',$uri);
$uri=str_replace('ç','c',$uri);
$uri=str_replace('Ç','c',$uri);
$uri=str_replace('Ğ','g',$uri);
$uri=str_replace('ğ','g',$uri);
$uri=str_replace('İ','i',$uri);
$uri=str_replace('ı','i',$uri);
$uri=str_replace('ö','o',$uri);
$uri=str_replace('Ö','o',$uri);
$uri=str_replace('ü','u',$uri);
$uri=str_replace('Ü','u',$uri);
$uri=str_replace('"','',$uri);
$uri=str_replace("'",'',$uri);
$uri=str_replace('','eu',$uri);
$uri=str_replace('$','usd',$uri);
$uri=str_replace('?','',$uri);
$uri=str_replace('_','',$uri);
$uri=str_replace('!','',$uri);
$uri=str_replace('.','',$uri);
$uri=str_replace(',','',$uri);
$uri=str_replace(';','',$uri);
$uri=str_replace('`','',$uri);
$uri=str_replace('^','',$uri);
$uri=str_replace('+','',$uri);
$uri=str_replace('/','',$uri);
$uri=str_replace('\\','',$uri);
$uri=str_replace('*','',$uri);
$uri=str_replace('=','',$uri);
$uri=str_replace('}','',$uri);
$uri=str_replace(']','',$uri);
$uri=str_replace(')','',$uri);
$uri=str_replace('[','',$uri);
$uri=str_replace('(','',$uri);
$uri=str_replace('{','',$uri);
$uri=str_replace('&','',$uri);
$uri=str_replace('%','yuzde',$uri);
$uri=str_replace('<','',$uri);
$uri=str_replace('>','',$uri);
$uri=str_replace('|','',$uri);
$uri=str_replace(':','',$uri);
$uri=str_replace('?','',$uri);
$uri=str_replace('`','',$uri);
$uri=str_replace('Q','q',$uri);
$uri=strtolower($uri);
$uri=str_replace('-',' ',$uri);
$uri = preg_replace('/[^a-z0-9 *]/i', '', $uri);
$uri = str_replace(' ', ' ', $uri);
$uri = str_replace(' ', ' ', $uri);
$uri = str_replace(' ', ' ', $uri);
$uri = str_replace(' ', ' ', $uri);
$uri = str_replace(' ', ' ', $uri);
$uri = str_replace(' ', '-', $uri);
return $uri;
}
$baslik='Beybut İle Özgün Görseller İçin Video Kullanımı';
$youtube='https://www.youtube.com/watch?v=n8d79M0LtfY'; // Youtube video adresi
if ( (strlen($baslik)<=3) or (strlen($youtube)<=20) ) {
echo 'Verilerden biri eksik.';
exit;
}
$vid = '/home/BURADA_TAM_YOL_BELIRTILMELI/islem.mp4'; // Kaydedilecek videonun tam yolu.
unlink('./gorsel/islem.mp4');
exec('youtube-dl -4 -o '.$vid.' -f 22 '.$youtube); // Videoyu indirme. -f 22 indirilecek videonun kalite belirtecidir.
$ffmpeg_path = 'ffmpeg';
if (file_exists($vid)) {
$video_attributes = _get_video_attributes($vid, $ffmpeg_path);
print_r('Video codec: ' . $video_attributes['codec'] . ' - width: ' . $video_attributes['width']
. ' - height: ' . $video_attributes['height'] . ' <br/>');
print_r('Video duration: ' . $video_attributes['hours'] . ':' . $video_attributes['mins'] . ':'
. $video_attributes['secs'] . '.'. $video_attributes['ms']);
} else { echo 'Video dosyası yok.'; }
function _get_video_attributes($video, $ffmpeg) {
$command = $ffmpeg . ' -i ' . $video . ' -vstats 2>&1';
$output = shell_exec($command);
$regex_sizes = "/Video: ([^,]*), ([^,]*), ([0-9]{1,4})x([0-9]{1,4})/";
if (preg_match($regex_sizes, $output, $regs)) {
$codec = $regs [1] ? $regs [1] : null;
$width = $regs [3] ? $regs [3] : null;
$height = $regs [4] ? $regs [4] : null;
}
$regex_duration = "/Duration: ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}).([0-9]{1,2})/";
if (preg_match($regex_duration, $output, $regs)) {
$hours = $regs [1] ? $regs [1] : null;
$mins = $regs [2] ? $regs [2] : null;
$secs = $regs [3] ? $regs [3] : null;
$ms = $regs [4] ? $regs [4] : null;
}
return array ('codec' => $codec,
'width' => $width,
'height' => $height,
'hours' => $hours,
'mins' => $mins,
'secs' => $secs,
'ms' => $ms
);
}
$i=1;
while ($i<=20) {
$ro=rand(1,60);
if ($ro<=9) {
$ro='0'.$ro;
}
$rmin=$video_attributes['mins'];
$rmin=ltrim($rmin,'0');
$rmin=rand(1,$rmin);
$ad=url_yap($baslik).'-'.date('dmYHis');
exec('ffmpeg -i '.$vid.' -ss 00:'.$rmin.':'.($ro).' -vframes 1 /home/BURADA_TAM_YOL_BELIRTILMELI/gorsel/'.$ad.'-'.$i.'.jpg'); //Videodan resimleri söküyorum.
$i++;
}
?>Uygulama sonucunda elde ettiğim "özgün" görsellerden bazıları:
Teknik eleştirilerinizi, yorumlarınızı buradan veya blogumdan bildirebilirsiniz.
Blogdaki diğer projelerimin de ilginizi çekeceğine eminim.
Selamlar...
Tam ayrıntı ve kaynak: http://www.beybut.com/ozgun-gorseller-olusturmak/