Ffmpeg ile toplu ekstre küçük resimleri


2

Bir çekicilik gibi çalışan aşağıdaki yarasa kodunu kullanarak yüzlerce .mpg dosyasından küçük resim resmini toplu halde tutmam gerekiyor, ancak tek dezavantajı çıktı png'nin "dosyaadı.mp4.png" gibi bir dosya adı olması. bu yüzden benim sorum şu, png dosyasında .mp4 yok diye kodu nasıl yeniden yazabilirim?

for %%A IN (*.mp4) DO ffmpeg -i "%%A" -vf "select=gte(n\,300)" -vframes 1 "%%A.png"

SuperUser'a Hoşgeldiniz. Aldığınız cevabı kontrol etmek ve bize geri bildirimde bulunmak için zaman ayırın.
Hastur

Yanıtlar:


1

Bulmak mümkün [ 1 ] o %%~n uzantısı olmadan dosya adını vermelisin.

Çalışırsa dene

for %%A IN (*.mp4) DO ffmpeg -i "%%A" -vf "select=gte(n\,300)" -vframes 1 "%%~nA.png"

Not: İnternetteki genişleme kuralları hakkında birçok dokümanda, bu cevaptan başlayarak daha fazlasını okuyabilirsiniz. [ 1 ] ve bu yaşlı nt kılavuz [ 2 ] .


İstediğim tam olarak bu, çok teşekkür ederim.
user1599523

2

Aradığın şey parametre genişletme, özellikle de alt dizginin kaldırılması. Bunu dene:

for file in *.mp4; do echo ffmpeg -i "$file" -vf "select=gte(n\,300)" -vframes 1 "${file%.mp4}.png"; done

Eğer bir değişkeniniz varsa $file, kullanabilirsiniz ${file%.mp4} içeriği en sonuncuyla çıkarmak için .mp4 sıyrılıp.

İşte daha fazla bilgi içeren bir makale: http://wiki.bash-hackers.org/syntax/pe

EDIT: Çok üzgünüm, ama etiketin "parti" yerine "BASH" dediğini sanıyordum. Komik sözdizimini merak ettim. Ancak bunu şimdilik burada bırakacağım. Hiç kimse bunu Windows ile yapmanın bir yolunu bilmiyorsa, BASH ile oldukça önemsizdir, bu nedenle belki de daha iyi bir alternatif yoksa bir yerlerde bir BASH kabuğu alabilirsiniz.


Merhaba, belki komutunuzun sözdizimini kontrol etmek istersiniz. Windows ve Bash arasında bir melez görünüyor. brrrr .... Op dan görünüyor o dünya ... duvarsız, ama yine de Windows ve Gates’e muhtaç ... ;-).
Hastur

Teşekkürler. Bunun hakkında bir not aldım. İşin garibi, satırın sadece değişken ismindeki ve ekleme içindeki değişikliklerle çalışması. done. BASH'in büyük harfleri böyle idare edeceğini bilmiyordum, ama öyle. Sonuç biraz daha standart hale getirmek için değiştirdim.
DKing

Rica ederim. Windows 10 için bir bash kabuğu var (iyi hatırlarsam Ubuntu türetilmiş). Var cygwin bu yüzden gerçekten isterse kullanılabilir. (öksürük.. Eko ..öksürük). :-)
Hastur
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.