Ffmpeg script mp4 to mp3

0

Problema

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

Acest lot convertește toate *.mp4 fișiere în directorul curent la un mp3. ffmpeg trebuie să fie instalat sau incluse în distribuție. Uneori nu vreau totul în CWD-a convertit. Aș dori pentru a modifica acest script, astfel încât.

  1. Dacă nu există argumente script-ul nu face nimic
  2. Dacă argumentul este *.mp4 acesta convertește toate .la mp4 .mp3
  3. Dacă argumentul este numele fisierului.mp4 numai convertește un fișier de nume de fișier.mp3

Pot primi ajutor cu bash script code ? TIA ! Nu sunt sigur cum să citească argumente pe linia de comandă și le-a pus în script-ul

$1 $2 ? Arată-mi doar un exemplu. Ar trebui să fie capabil să facă alții.

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

Cel mai bun răspuns

0

Puteți lăsa coajă se ocupe de extinderi, și apoi în script bucla peste pozițional parametri. Ai putea face asta cu

for i in "$@"

sau, chiar mai scurtă, doar

for i

ca comportamentul implicit este de a bucla peste pozițional parametri.

Deci, scenariul ar arata ca

#!/usr/bin/env bash

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

și v-ar spune ca

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

Vă mulțumesc foarte mult. Aceasta funcționează bine. Pot folosi $i în orice script bash pentru a citi primul argument după scrfipt numele ? Am crezut că a fost de $1 $2 $3 etc.
teddymills

@teddymills "magic" este în for i linia, care, implicit, nu for i in "$@", în cazul în care $@ este o matrice de toți parametrii de poziție. $1, $2 etc. sunt individuale parametrii de poziție, dacă doriți să le accesați direct.
Benjamin W.

Numele i este arbitrară; de asemenea, ai putea folosi for param sau for file în schimb, și de referință cu $param sau $file.
Benjamin W.

În alte limbi

Această pagină este în alte limbi

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