Saya memiliki urutan file:
file0.png, file1.png, ..., file10.png,... file100.png, ..., file1000.png, file1001.png, ..., file10000.png
Saya ingin membuat video dengan ffmpeg,
ffmpeg -framerate 30 -pattern_type glob -i '*.png' -c:v libx264 out.mp4
Konvensi nama mengarah ke urutan yang salah dari file yang dibaca dalam input. Bagaimana saya bisa memecahkan masalah ini?
solusi yang disebut "Bagaimana cara saya mengubah nama banyak file di Command Prompt?" tidak bekerja!
linux
command-line
toto
sumber
sumber
Jawaban:
Inilah yang dilakukan toto untuk mengubah nama urutan file.
sumber
Awalnya saya melihat
ffmpeg
dokumen untuk melihat apakah nama file input dapat ditentukan dalam file sendiri, di mana Anda bisa mengurutkannya sesuka Anda. Tetapi dokumentasi tidak jelas memiliki opsi seperti itu. Saya bisa saja salah, dan itu akan menjadi rekomendasi saya jika Anda memperhatikan opsi seperti itu.Jadi alih-alih, Anda harus mengganti nama file Anda untuk input sesuai urutan yang Anda inginkan. Aku akan menganggap Anda menggunakan shell bash, file-file tersebut di direktori yang sama, semua bernama
file1.png
untukfile10000.png
dan Anda lebih memilih untuk memiliki mereka bernamafile00001.png
kefile10000.png
.Pada satu baris sebagai:
for f in file*.png; do printf -v n "file%05d.png" "${f:4:-4}"; mv "$f" "$n"; done
atau mungkin hanya:
Pada satu baris sebagai:
for (( i=0; i<10000; i++ )); do printf -v n "%05d" $i; mv "file$i.png" "file$n.png"; done;
Saya tidak yakin mana yang lebih cepat, tetapi saya kira yang kedua adalah.
sumber