• 12-12-2015, 14:01:02
    #1
    Selâmün Aleyküm, Merhaba Arkadaşlar,

    Sunucuda bazı dizinlerdeki videoların toplam süresini öğrenmek istiyorum.

    a dizininde 1.500 saat,
    b dizininde 750 saat,
    c dizininde 2.400 saat
    ... gibi dizin dizin sorgulama, öğrenme imkanım var mı? Nasıl bir şey yapabilirim?


    DİĞER SORUM:
    VİDEO SUNUCU UZMANLARINA SORU: Topluca Intro.mp4+logo+720p Hızlı Çıktı



    .
  • 13-12-2015, 22:19:19
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Akar adlı üyeden alıntı: mesajı görüntüle
    Selâmün Aleyküm, Merhaba Arkadaşlar,

    Sunucuda bazı dizinlerdeki videoların toplam süresini öğrenmek istiyorum.

    a dizininde 1.500 saat,
    b dizininde 750 saat,
    c dizininde 2.400 saat
    ... gibi dizin dizin sorgulama, öğrenme imkanım var mı? Nasıl bir şey yapabilirim?


    DİĞER SORUM:
    VİDEO SUNUCU UZMANLARINA SORU: Topluca Intro.mp4+logo+720p Hızlı Çıktı



    .
    A.selam Akar,

    mp4 formatı için nacizane bir örnek;

    SAY=0
    for i in *.mp4; do
    SAY=$((SAY+$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$i" | cut -d. -f1)))
    done
    echo $SAY
  • 14-12-2015, 01:42:02
    #3
    AndyCap adlı üyeden alıntı: mesajı görüntüle
    A.selam Akar,

    mp4 formatı için nacizane bir örnek;

    SAY=0
    for i in *.mp4; do
    SAY=$((SAY+$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$i" | cut -d. -f1)))
    done
    echo $SAY
    Çok teşekkür ederim. Yarın bir deneyeyim inşâallâh. Bu çok gerekliydi.
  • 14-12-2015, 12:00:51
    #4
    AndyCap adlı üyeden alıntı: mesajı görüntüle
    A.selam Akar,

    mp4 formatı için nacizane bir örnek;

    SAY=0
    for i in *.mp4; do
    SAY=$((SAY+$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$i" | cut -d. -f1)))
    done
    echo $SAY
    bu verdiğiniz konu nasıl kullanabiliriz ? dirke kopyala yapıştır şeklinde terminal olur mu?

    t.sh dosyasına yazıldı. çalıştırıldı. 1673506 gibi bir sonuç verdi bu ne demek oluyor dk cinsinden mi yoksa saat cinsinden mi?

    güncelleme: tek videoda test ettik. saniye bazında.
  • 17-12-2015, 20:48:53
    #5
    alternatif olarak aşağıdaki gibi ffmpeg de kullanabilirsiniz,
    saniye olarak çıktı verir.

    times=()
    for f in *.ts; do
        _t=$(ffmpeg -i "$f" 2>&1 | grep "Duration" | grep -o " [0-9:.]*, " | head -n1 | tr ',' ' ' | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }')
        times+=("$_t")
    done
    echo "${times[@]}" | sed 's/ /+/g' | bc
  • 18-12-2015, 16:28:22
    #6
    victories adlı üyeden alıntı: mesajı görüntüle
    alternatif olarak aşağıdaki gibi ffmpeg de kullanabilirsiniz,
    saniye olarak çıktı verir.

    times=()
    for f in *.ts; do
        _t=$(ffmpeg -i "$f" 2>&1 | grep "Duration" | grep -o " [0-9:.]*, " | head -n1 | tr ',' ' ' | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }')
        times+=("$_t")
    done
    echo "${times[@]}" | sed 's/ /+/g' | bc
    Teşekkür ederim, önceki işimizi görmüştü ama bunu da not edeyim kenara.