Ffmpeg skript mp4 do mp3

0

Otázka

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

Tento dávkový konvertuje všetky *.mp4 súbory v aktuálnom adresári na mp3. fa musí byť nainštalovaný alebo sú zahrnuté v tomto distro. Niekedy nechcem, všetko v CWD previesť. Ja by som chcel zmeniť tento skript tak, že.

  1. Ak nie je žiadne argumenty skript nemá nič
  2. Ak argument je *.mp4 skonvertuje všetky .mp4 .mp3
  3. Ak sa argument názov súboru.mp4 to len prevádza, že jeden súbor, meno súboru.mp3

Som si niektoré pomôžu bash skript kód ? TIA ! Nie ste si istí ako čítať argumenty mimo príkazový riadok a dať ich do skriptu

$1 $2 ? Len mi ukázať jeden príklad. Mal by som byť schopný robiť iní.

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

Najlepšiu odpoveď

0

Môžete nech shell zvládnuť expanzie, a potom v skriptu slučky cez pozičné parametre. By ste mohli urobiť s

for i in "$@"

alebo, ešte kratšie, len

for i

ako predvolené správanie je slučky cez pozičné parametre.

Takže, váš skript bude vyzerať

#!/usr/bin/env bash

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

a vy by ste volať ako

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

Ďakujem. To funguje dobre. Môžem používať $i v každom bash skript čítať prvý argument po scrfipt meno ? Myslel som, že to bolo $1 $2 $3, atď.
teddymills

@teddymills "magic" je v for i riadok, ktorý implicitne sa for i in "$@"tam , kde je $@ je pole všetkých pozičné parametre. $1, $2 atď. sú jednotlivé pozičné parametre, ak by ste chceli otvárať ich priamo.
Benjamin W.

Názov i je ľubovoľná, môžete tiež použiť for param alebo for file namiesto toho, a odkaz s $param alebo $file.
Benjamin W.

V iných jazykoch

Táto stránka je v iných jazykoch

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