Giriş yap

ffmpeg ile Büyük Video Dosyalarını Boyuta Göre Bölmek

Örneğin 2GB'lık büyük bir video dosyanızı 100mb'lık partlar halinde bölmek isterseniz aşağıdaki adımları takip etmeniz yeterli.

split-video.sh adında bir dosya oluşturun ve içerisine aşağıdaki kodları yazın;

#!/bin/bash

FILE="$1"
SIZELIMIT="$2"
FFMPEG_ARGS="$3"

# Kaynak videonun süresi
DURATION=$(ffprobe -i "$FILE" -show_entries format=duration -v quiet -of default=noprint_wrappers=1:nokey=1|cut -d. -f1)

# Şuana kadar encode edilmiş süre
CUR_DURATION=0

# Kaynak videonun adı (uzantısız)
BASENAME="${FILE%.*}"

# Video partlarının uzantısı (otomatik inputa girilen videodan çeker isterseniz ikinciyi aktif edebilirsiniz)
EXTENSION="${FILE##*.}"
#EXTENSION="mkv"

# Mevcut video partının değeri
i=1

# Bir sonraki video partı için dosya adı
NEXTFILENAME="$BASENAME-$i.$EXTENSION"

echo "Kaynak videonun süresi: $DURATION"

# Tüm videoların süresi kaynak videonun süresine ulaşıncaya kadar döngüyü sürdür
while [[ $CUR_DURATION -lt $DURATION ]]; do

    # Bir sonrakini encode et
    echo ffmpeg -i "$FILE" -ss "$CUR_DURATION" -fs "$SIZELIMIT" $FFMPEG_ARGS "$NEXTFILENAME"
    ffmpeg -ss "$CUR_DURATION" -i "$FILE" -fs "$SIZELIMIT" $FFMPEG_ARGS "$NEXTFILENAME"

    # Yeni partın süresi
    NEW_DURATION=$(ffprobe -i "$NEXTFILENAME" -show_entries format=duration -v quiet -of default=noprint_wrappers=1:nokey=1|cut -d. -f1)

    # Şuana kadar encode edilen süre
    CUR_DURATION=$((CUR_DURATION + NEW_DURATION))

    i=$((i + 1))

    echo "$NEXTFILENAME Süresi: $NEW_DURATION"
    echo "Part No. $i başlangıç $CUR_DURATION"

    NEXTFILENAME="$BASENAME-$i.$EXTENSION"
done

Evet, artık şu şekilde çalıştırarak kullanabilirsiniz;

macbook -- -bash --- 64x17
 
sh split-video.sh uzun-video.mkv 100000000 "-c:v libx264 -crf 23 -c:a copy -vf scale=1280:-1"

Burada 100000000 değeri 100MB'a eşittir. Dilediğiniz rakamı bayt cinsinden vererek bölme işlemini gerçekleştirebilirsiniz.

Ayrıca 1280 değerini istediğiniz boyuta göre değiştirin. 720p için 1280, 1080p için 1920 belirleyebilirsiniz.

tayfunerbilen
46 gün önce yazdı.
Günlük Film Tavsiyesi