• 09-03-2016, 14:21:45
    #1
    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. Dubai’yi 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/
    • bura
    • jumaru
    • ustaadam
    bura, jumaru, ustaadam ve 8 kişi bunu beğendi.
    11 kişi bunu beğendi.
  • 09-03-2016, 14:47:23
    #2
    Zannediyorum 'tuvali yatay olarak döndür' seçeneği ile aynı sonucu elde ediyorum.

    Paylaşım için teşekkürler.
  • 09-03-2016, 14:52:34
    #3
    Seni kutluyorum çok güzel bir paylaşım yapmışsın.İlerleyen senelerde özgün resimler çok daha önemli seo faktoru olucak. Bu alanda bende masaüstü program yapıp r10 da paylaşmıştım.Çok temel ve önemli bir konu olmasına rağmen gerçekten çok ilgi görmüyor insanlar tarafından bu da enteresan.
    • senturksun
    • trenderkek
    • fguclu
    senturksun, trenderkek, fguclu ve 1 kişi bunu beğendi.
    4 kişi bunu beğendi.
  • 09-03-2016, 15:21:28
    #4
    Paylaşım için teşekkürler takipteyim
  • 09-03-2016, 15:40:20
    #5
    Bu bahsttiğiniz görsellerin hepsini https://www.google.com.tr/imghp buradan arattım. ve farklı sitelerde çıkıyor. Yani özgün değil. Tabi bu ekleyen siteler belki bu yöntemi kullanmışdır. Ama farklı bir paylaşım olmuş.
  • 09-03-2016, 18:16:27
    #6
    Youtube videolarının görsellerini tanıyor google.
  • 09-03-2016, 18:22:47
    #7
    iyi adlı üyeden alıntı: mesajı görüntüle
    Youtube videolarının görsellerini tanıyor google.
    Aynen öyle. Hatta yabancı bir dergide ki bir makaleyi siteme ekleyecektim. dergi pdf formatında ve sadece resim olarak önizlemesi vardı. Yani dergideki yazıları kopyala yapıştır yaparak almak imkansız. makaleyi özgünlük kontrolü yaptım ama google o dergideki yazıları bile indexlemiş. Adamların gözünden birşey kaçmıyor.
  • 09-03-2016, 18:54:17
    #8
    iyi adlı üyeden alıntı: mesajı görüntüle
    Youtube videolarının görsellerini tanıyor google.

    Google, videoların içindeki tüm frameleri tanıyamaz. Bu, işlem sayısı ve kaynak olarak bir algoritma için çok fazla.

    Örnek olarak seçilen video bilindik manzaraları içeriyor. Dubai'de zaten belli başlı yerler var. O yüzden benzeyen sonuçlar görmüşsünüzdür. Ancak boyut olarak da birebir eşleşen görsel yoktur. Milyarlarca video var. Başkasıyla deneyebilirsiniz.

    Bu, geçerliliğini denediğim bir kodlama. Yani ilk defa Beybut'a yazıp burada paylaşmadım. O yüzden "deneyeyim tutar mı?" diye düşünmenize gerek yok. Yaparsanız tutar. Büyütülecek bir şey de değil. Daha kodladığım çok ve ilginç şeyler var. Takipte kalın.

    Selamlar...
    • trenderkek
    trenderkek bunu beğendi.
    1 kişi bunu beğendi.
  • 09-03-2016, 19:01:05
    #9
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Google, videoların içindeki tüm frameleri tanıyamaz. Bu, işlem sayısı ve kaynak olarak bir algoritma için çok fazla.

    Örnek olarak seçilen video bilindik manzaraları içeriyor. Dubai'de zaten belli başlı yerler var. O yüzden benzeyen sonuçlar görmüşsünüzdür. Ancak boyut olarak da birebir eşleşen görsel yoktur. Milyarlarca video var. Başkasıyla deneyebilirsiniz.

    Bu, geçerliliğini denediğim bir kodlama. Yani ilk defa Beybut'a yazıp burada paylaşmadım. O yüzden "deneyeyim tutar mı?" diye düşünmenize gerek yok. Yaparsanız tutar. Büyütülecek bir şey de değil. Daha kodladığım çok ve ilginç şeyler var. Takipte kalın.

    Selamlar...
    Hocam bu yaptığını ben 4 yıldır yapıyorum emin ol her frame indexleniyor. Hatta sana karşılaşılan sorunu da söyliyeyim.

    Sen bir frame yakaladın ve index aldırdın, youtube video eklenme tarihinden bile senin onu o videodan aldığını anlayabiliyor. Olay sandığınız kadar basit değil. Yani ilk başta özgün olarak görse bile daha sonra video içeriğinden alındığını anlıyor ve site ceza alıyor.