Mp4'ten mp3'e ffmpeg komut dosyası

0

Soru

#!/bin/bash
for i in *.mp4
do
ffmpeg -i "$i" -ab 128k "${i%mp4}mp3"
done

Bu toplu iş geçerli dizindeki tüm *.mp4 dosyalarını bir mp3'e dönüştürür. ffmpeg'in bu dağıtıma yüklenmesi veya dahil edilmesi gerekir. Bazen cwd'deki her şeyin dönüştürülmesini istemiyorum. Bu betiği öyle değiştirmek istiyorum.

  1. Argüman yoksa, komut dosyası hiçbir şey yapmaz
  2. Argüman *.mp4 ise, tüm .mp4'ü .mp3'e dönüştürür
  3. Argüman filename.mp4 ise, yalnızca bir dosyayı filename.mp3'e dönüştürür

Bash komut dosyası koduyla ilgili yardım alabilir miyim ? TIA ! Argümanları komut satırından nasıl okuyacağınızdan ve bunları komut dosyasına nasıl koyacağınızdan emin değilim

$1 $2 ? Bana sadece bir örnek göster. Diğerlerini yapabilmeliyim.

bash ffmpeg script
2021-11-23 16:45:49
1

En iyi cevabı

0

Kabuğun açılımları işlemesine izin verebilir ve ardından komut dosyanızda konumsal parametreler üzerinde döngü yapabilirsiniz. Bunu şununla yapabilirsin

for i in "$@"

ya da daha kısa, sadece

for i

varsayılan davranış, konumsal parametreler üzerinde döngü yapmaktır.

Yani senaryon şöyle görünürdü:

#!/usr/bin/env bash

for i; do
    ffmpeg -i "$i" -ab 128k "${i%mp4}mp3"
done

ve sen buna şöyle derdin

yourscript           # Do nothing
yourscript *.mp4     # Expands to all .mp4 files
yourscript file.mp4  # Process just file.mp4
2021-11-23 17:13:32

Çok teşekkür ederim. Bu iyi çalışıyor. Scrfıpt adından sonraki ilk bağımsız değişkeni okumak için herhangi bir bash komut dosyasında $ı kullanabilir miyim ? 1 $2 $3 vb.Olduğunu düşündüm.
teddymills

@teddymills "sihir" içinde for i örtük olarak yapan çizgi for i in "$@", nere $@ tüm konumsal parametrelerin bir dizisidir. $1, $2 vb. doğrudan erişmek istiyorsanız, bunlar ayrı konumsal parametrelerdir.
Benjamin W.

Ad i keyfi; ayrıca kullanabilirsiniz for param veya for file bunun yerine, ve onunla referans $param veya $file.
Benjamin W.

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................