Ffmpeg script mp4 mp3

0

Domanda

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

Questa conversione in batch di tutti *.mp4 file nella directory corrente in un file mp3. ffmpeg deve essere installata o in quella distro. A volte non ho voglia di tutto nella CWD convertito. Vorrei modificare questo script in modo che.

  1. Se non c'è nessun argomento lo script non fa nulla
  2. Se l'argomento è *.mp4 converte tutti .mp4 .mp3
  3. Se l'argomento è il nome del file.mp4 converte solo che un file di nome file.mp3

Posso ottenere qualche aiuto con lo script bash codice ? TIA ! Non sai come leggere gli argomenti di sconto la linea di comando e metterli nello script

$1 $2 ? Appena mi mostra un esempio. Dovrei essere in grado di fare gli altri.

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

Migliore risposta

0

È possibile lasciare che il guscio di gestire le espansioni, e poi nel tuo script loop su parametri posizionali. Si può fare anche con

for i in "$@"

o, ancora di più, basta

for i

il comportamento predefinito è quello di eseguire un ciclo parametri posizionali.

Così, il vostro script sarebbe simile

#!/usr/bin/env bash

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

e ti vorrei chiamare

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

Vi ringrazio tanto. Questo funziona bene. Posso usare $i in qualsiasi bash script per leggere il primo argomento dopo il scrfipt nome ? Ho pensato che è stato di $1 $2 $3, etc.
teddymills

@teddymills La "magia" è in for i la linea, che implicitamente fa for i in "$@"dove $@ è un array di tutti i parametri posizionali. $1, $2 ecc. sono i singoli parametri posizionali, se vuoi accedere direttamente.
Benjamin W.

Il nome i è arbitrario; si potrebbe anche usare for param o for file invece, e il riferimento con $param o $file.
Benjamin W.

In altre lingue

Questa pagina è in altre lingue

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