Ffmpeg secuencia de comandos de mp4 a mp3

0

Pregunta

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

Este lote convierte todos *.mp4 archivos en el directorio actual a un mp3. ffmpeg necesita ser instalado o incluido en esa distro. A veces no me lo quieren todo en el CWD convertido. Me gustaría modificar este script para que.

  1. Si no hay argumentos de que el script no hace nada
  2. Si el argumento es *.mp4 convierte todo .mp4 a .mp3
  3. Si el argumento es un nombre de archivo.mp4 es sólo convierte un archivo con nombre de archivo.mp3

Puedo obtener un poco de ayuda con un script de bash código ? TIA ! No estoy seguro de cómo leer los argumentos fuera de la línea de comandos y poner en el script

$1 $2 ? Muéstrame un ejemplo. Yo debería ser capaz de hacer los otros.

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

Mejor respuesta

0

Usted puede dejar la cáscara de mango de las expansiones, y luego, en su secuencia de comandos de bucle en los parámetros de posición. Usted podría hacer que con

for i in "$@"

o, aún más, sólo

for i

como el comportamiento por defecto es un bucle en los parámetros de posición.

Así, la secuencia de comandos se vería

#!/usr/bin/env bash

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

y te diría que es como

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

Muchas gracias. Esto funciona bien. Puedo usar $i en cualquier script de bash para leer el primer argumento después de la scrfipt nombre ? Pensé que era de $1 $2 $3, etc.
teddymills

@teddymills La "magia" está en la for i la línea, que implícitamente se hace for i in "$@", donde $@ es una matriz de todos los parámetros de posición. $1, $2 etc. son los distintos parámetros de posición, si quieres acceder a ellos directamente.
Benjamin W.

El nombre i es arbitrario; también se podría utilizar for param o for file en su lugar, y la referencia con $param o $file.
Benjamin W.

En otros idiomas

Esta página está en otros idiomas

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