2016-04-04 21 views
2

Bazı video kodlamasını otomatik hale getiren bir zsh komut dosyası yazıyorum. Dosya bu satırı içeren komut ilk parametre olacak dönüştürülecek:

ffmpeg -i $1 -ac 0 -vcodec libx264 -b:v 500k -crf 20 ${1:r}.mp4 

benim .mov girişi ile aynı ada sahip bir dosya oluşturmak için ${1:r}.mp4 bekleniyor ancak .mp4 dosya uzantısı ile .mov değiştiriliyor Ama bunun yerine input.mov.mp4 olsun. Neden: r eklentisi dosya uzantısını soyuyor?

+0

Tamam, aptal soru ilk: gerçekten doğru bir zsh komut dosyası, sen zsh' 'ile çalıştırın ve hiçbir' #/bin/bash' veya benzer olduğunu orada ? Şimdi, bu yoldan çıktı: neyin yanlış gittiğini tahmin etmek biraz zor. Bütün senaryo bu mu? ~/.zshenv' veya '/ etc/zshenv'de (veya belki'/etc/zsh/zshenv') herhangi bir ayarınız var mı? Eğer betiğin içine “setopt” koyarsanız, evet ise ne çıktı? – Adaephon

cevap

1

Benzer bir şey yaşadım ve zsh kabul etmiyor gibi görünüyor: konumsal argümanlar üzerinde r. Bunun yerine böyle bir şey yapabileceğini:

file=${1} 
ffmpeg -i $1 -ac 0 -vcodec libx264 -b:v 500k -crf 20 ${file:r}.mp4