Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: hromadná konverze pomocí avconv v bashi  (Přečteno 2325 krát)

beer

  • Host
hromadná konverze pomocí avconv v bashi
« kdy: 31 Července 2012, 02:13:05 »
potřeboval bych konvertovat soubory, například z amr do mp3 či ogg.

původně jsem zkusil ffmpeg, ale píše to, že v dalších verzích nebude.
$ ffmpeg -i *.amr *.mp3

vytvořilo to soubor *.mp3.

Když dám to samé s avconv, také to vytvoří soubor *.mp3.

Já bych byl rád, aby příkaz byl vykonán na všechny soubory ve složce a aby zachoval jejich jména, ale aby se změnila koncovka + kodek. Proč to interpretuje hvězdičku jako zástupný (žolíkový) znak pouze na vstupu a nikoliv na výstupu?
« Poslední změna: 31 Července 2012, 10:00:26 od beer »

beer

  • Host
Re:hromadná konverze pomocí avconv v bashi
« Odpověď #1 kdy: 31 Července 2012, 08:39:02 »
Mohlo by fungovat toto?

Nejsem u stroje, kde bych to nyní mohl vyzkoušet.

Kód: [Vybrat]
#!/bin/bash
ls -1 *.amr|while read line;
do avconv -i "$line" "$line".mp3;
done

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re:hromadná konverze pomocí avconv v bashi
« Odpověď #2 kdy: 31 Července 2012, 21:07:50 »
jo, jen misto ls bych pouzil find (http://mywiki.wooledge.org/ParsingLs)
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:hromadná konverze pomocí avconv v bashi
« Odpověď #3 kdy: 31 Července 2012, 21:19:59 »
nikdy nepouzivejte ls pro vyber souboru do cyklu :D .. to radsi printf
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

beer

  • Host
Re:hromadná konverze pomocí avconv v bashi
« Odpověď #4 kdy: 01 Srpna 2012, 01:31:46 »
OK, díky. Vyzkoušel jsem, a toto funguje:

Kód: [Vybrat]
#!/bin/bash
find *.amr|while read line;
do avconv -i "$line" "$line".mp3;
done

Jen pro zajímavost, jak by to vypadalo s printf?

 

Provoz zaštiťuje spolek OpenAlt.