μετατροπή flv σε mp3 με bash script

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

μετατροπή flv σε mp3 με bash script

Δημοσίευσηαπό malos » 23 Ιαν 2013, 02:31

Γεια σας παιδιά. Έχω ένα σεναριάκι που με το κλικ πάνω του
(αφού το έχω κάνει κάνει εκτελέσιμο) μου βγάζει σε mp3 το ηχητικό μέρος ενός flv αρχείου.

Κώδικας: Επιλογή όλων
#!/bin/bash
ffmpeg -i ./*.flv -acodec libmp3lame -ac 2 -ab 128000 -vn song.mp3
.

Το θέμα μου είναι ότι αν είναι ένα βίντεο μες στον φάκελο έχει καλώς. Μου φτιάχνει το song.mp3.

Αν έχω πολλά φαντάζομαι ότι θα έχουμε εμπλοκή. Δεν το έχω δοκιμάσει καν.

Πως να αλλάξω το σεναριάκι ώστε να παίρνει το όνομα του flv και να το κοτσάρει στο mp3,
έτσι ώστε αν είναι και περισσότερα flv αρχεία στο φάκελο που κάνω αυτή τη δουλειά,
να αποδίδονται τα αντίστοιχα ονόματα στα mp3;

Ευχαριστώ.
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: μετατροπή flv σε mp3 με bash script

Δημοσίευσηαπό dimiro » 23 Ιαν 2013, 14:10

Κώδικας: Επιλογή όλων
for song in *.flv; do
ffmpeg -i "$song" -acodec libmp3lame -ac 2 -ab 128000 "${song%.flv}.mp3"; done
Γνώσεις ⇛ Linux: Χαμηλο ┃ Προγραμματισμός: Κάτι λίγα ┃ Αγγλικά: you are beautiful, i love you
Laptop: Λειτουργικό: LMDE32bit-xfce |Centrino Duο@1.66|1GB RAM
Desktop: Debian Testing 64bit
Προδιαγραφές ⇛Intel(R) i3 CPU 2100 @ 3.1GHz │ Kingston 2x2GB 1333 MHz │snVidia GF104 [GeForce GTX 460] [10de:0e22] (rev a1)│ Gigabye p67a-D3-B3 | Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller
dimiro
babeTUX
babeTUX
 
Δημοσιεύσεις: 90
Εγγραφή: 18 Οκτ 2010, 18:29
Εκτύπωση

Re: μετατροπή flv σε mp3 με bash script

Δημοσίευσηαπό malos » 23 Ιαν 2013, 18:07

Ωραίος. Ευχαριστώ dimiro.
Έφτιαξα όμως ένα ψάχνοντας λίγο. Το είχα έτοιμο αργά τη νύχτα και δεν το πόσταρα.
Τελικά το έφτιαξα το εργαλειάκι μου. Με βολεύεςι πολύ έτσι.
Βουτάς ότι flv θες να δουλέψεις. Τα πετάς στο φάκελο πατάς κλικ
και σου λέει όταν τελειώσει.

Αλλά πολύ πιο απλό το δικό σου.
Να 'σαι καλά.


Κώδικας: Επιλογή όλων

#!/bin/bash
espeak -v el "Ηη μετατροπή, Άρχισε"
notify-send -i /usr/share/icons/SphereCrystal/scalable/emblems/emblem-camera.svg "Η μετατροπή άρχισε......."
for file in *.flv; do ffmpeg -i "$file" -acodec libmp3lame -ac 2 -ab 128000 -vn "`echo $file | sed -e 's/\.flv$/\.mp3/'`"; done
notify-send -i /usr/share/icons/ffmulticonverter.png "Η μετατροπή τελείωσε"
espeak -v el "Ηη ΜΕΤΑΤΡΟΠΉ, τελείωσε."
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: μετατροπή flv σε mp3 με bash script

Δημοσίευσηαπό dimiro » 23 Ιαν 2013, 19:36

ωραίο...
αυτό που δεν εχω βρει πως γίνεται ειναι να κανεις μετατροπή ολων πχ των flv σε mp3 που βρίσκονται σε όλους τους υποφακέλους.δλδ να ξεκινήσει κάπως έτσι

for song in `find . -name "*.flv:`; do κτλ...

δεν εχω καταφέρει να το κάνω, γιατι αν δεν κανω λάθος το πρόβλημα ειναι τα κενα..

όπως ξερει ας ομιλήσει :bow:
Γνώσεις ⇛ Linux: Χαμηλο ┃ Προγραμματισμός: Κάτι λίγα ┃ Αγγλικά: you are beautiful, i love you
Laptop: Λειτουργικό: LMDE32bit-xfce |Centrino Duο@1.66|1GB RAM
Desktop: Debian Testing 64bit
Προδιαγραφές ⇛Intel(R) i3 CPU 2100 @ 3.1GHz │ Kingston 2x2GB 1333 MHz │snVidia GF104 [GeForce GTX 460] [10de:0e22] (rev a1)│ Gigabye p67a-D3-B3 | Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller
dimiro
babeTUX
babeTUX
 
Δημοσιεύσεις: 90
Εγγραφή: 18 Οκτ 2010, 18:29
Εκτύπωση

Re: μετατροπή flv σε mp3 με bash script

Δημοσίευσηαπό Ilias95 » 23 Ιαν 2013, 20:48

dimiro έγραψε:ωραίο...
αυτό που δεν εχω βρει πως γίνεται ειναι να κανεις μετατροπή ολων πχ των flv σε mp3 που βρίσκονται σε όλους τους υποφακέλους.δλδ να ξεκινήσει κάπως έτσι

for song in `find . -name "*.flv:`; do κτλ...

δεν εχω καταφέρει να το κάνω, γιατι αν δεν κανω λάθος το πρόβλημα ειναι τα κενα..

όπως ξερει ας ομιλήσει :bow:

Έχω γράψει ένα πρόγραμμα με γραφικό περιβάλλον που κάνει αυτή την δουλειά: viewtopic.php?f=6&t=20975&start=0

Δεν ξέρω αν σε ενδιαφέρει μόνο η υλοποίηση (το δικό μου είναι γραμμένο σε python όχι σε bash) αλλά αν θες απλά να πετύχεις το αποτέλεσμα, κάνει τη δουλειά. Για να αντιμετωπίσεις το πρόβλημα σε bash δεν είναι αρκετό να χρησιμοποιείς εισαγωγικά (" ") γύρο απ' το string του ονόματος όταν αυτό περιέχει κενά ή άλλους ειδικούς χαρακτήρες;
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: μετατροπή flv σε mp3 με bash script

Δημοσίευσηαπό xXx » 24 Ιαν 2013, 13:01

@dimiro
Κάτι τέτοιο θα σου κάνει τη δουλειά
Κώδικας: Επιλογή όλων
#!/bin/bash
for i in "$(find "/directories/with spaces/and/with/spaces in filenames" | grep avi$)"
do
echo "$i"
#το echo "$i" είναι για τεστ
#κανονικά βάζεις:
#ffmpeg -i "$i" -acodec libmp3lame -ac 2 -ab 128000 -vn $(echo "$i" | sed 's/\.avi$/\.mp3/')
done

επίσης μπορείς να βάλεις την διαδρομή που θέλεις σαν διακόπτη στο πρόγραμμα σου και να
την χρησιμοποιήσεις ως μεταβλητή για φορητότητα.
Δηλαδή:
Κώδικας: Επιλογή όλων
#!/bin/bash
# Author xXx
# Script name myff
if [ -z "$1" ]
then
echo "Παρακαλώ δώστε διαδρομή προς μετατροπή"
echo "Π.Χ. myff ~/Downloads"
exit
else
for i in "$(find "$1" | grep avi$)"
do
echo "$i"
done
fi

Με αυτό τον τρόπο θα πάιξει και για drag and drop.
Ελπίζω να βρεις την άκρη...
Κυρίως Desktop: MoBo: GA-MA78GM-S2H | CPU: AMD Phenom(tm) II X4 920 2.80 GHz | VGA: NVIDIA Corporation GF119 [GeForce GT 610] | RAM: 3GB DDR2 800 | Audio: Realtek ALC889A (ATI SB) | Audio: NVIDIA Corporation GF119 HDMI | OS: Debian jessie 64bit
Άβαταρ μέλους
xXx
punkTUX
punkTUX
 
Δημοσιεύσεις: 211
Εγγραφή: 05 Μάιος 2010, 16:12
Τοποθεσία: Ελλάδα, Θεσσαλονίκη, Άνω Πόλη
Εκτύπωση

Re: μετατροπή flv σε mp3 με bash script

Δημοσίευσηαπό Tassos10 » 27 Δεκ 2013, 01:04

Αυτή η εντολή :
Κώδικας: Επιλογή όλων
ffmpeg -i "$song" -acodec libmp3lame -ac 2 -ab 128000 "${song%.flv}.mp3"; done

είναι εντολή bash ?
Διότι δεν την καταλαβαίνω.. το ffmpeg πως ξέρεις πως να το χρησιμοποιήσεις;
Επίσης αντί για .flv σε .mp3 μπορείς να κάνεις και .flv σε .avi π.χ. ;
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-50-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.2.0-49-generic
3 Intel Core2 Quad CPU Q9400 2.66GHz ‖ RAM 3954 MiB ‖ ASRock G31M-S
4 nVidia G92 [GeForce 9800 GT] [10de:0614] {nvidia}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02)
Tassos10
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 472
Εγγραφή: 29 Μαρ 2010, 10:43
Εκτύπωση

Re: μετατροπή flv σε mp3 με bash script

Δημοσίευσηαπό Geochr » 27 Δεκ 2013, 10:34

Το θέμα μεταφέρθηκε σε καταλληλότερη ενότητα

Γνώσεις ⇛Linux: Μαθαίνω αργά ┃ Προγραμματισμός: Ελάχιστο ┃ Αγγλικά: Μέτρια

  • Λειτουργικό ⇛ Ubuntu 16,04LTS
    ⇛Intel Core i3-2365M CPU @1.40GHz ‖ RAM 7780 MB ‖ Acer Aspire V5-571
Άβαταρ μέλους
Geochr
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 2466
Εγγραφή: 27 Νοέμ 2010, 01:39
Τοποθεσία: Περιστέρι - Αίγινα
Launchpad: geochr
IRC: Geochr
Εκτύπωση

Re: μετατροπή flv σε mp3 με bash script

Δημοσίευσηαπό fkol k4 » 27 Δεκ 2013, 15:28

Tassos10 έγραψε:Αυτή η εντολή :
Κώδικας: Επιλογή όλων
ffmpeg -i "$song" -acodec libmp3lame -ac 2 -ab 128000 "${song%.flv}.mp3"; done

είναι εντολή bash ?

Όχι, είναι εντολή ffmpeg.
Tassos10 έγραψε:το ffmpeg πως ξέρεις πως να το χρησιμοποιήσεις;
Επίσης αντί για .flv σε .mp3 μπορείς να κάνεις και .flv σε .avi π.χ. ;

Κοίταξε εδώ: FFmpeg little helper
Επίσης: man ffmpeg
Γνώσεις: Linux: ★★★☆☆ Προγραμματισμός: ★☆☆☆☆ Αγγλικά: ★★★★★
Η υπογραφή μου
Οδηγίες για αρχάριους στο Ubuntu (12.04 LTS)Οδηγοί του forum
Άβαταρ μέλους
fkol k4
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4829
Εγγραφή: 28 Φεβ 2011, 22:56
Τοποθεσία: Αθήνα
Launchpad: fkol-k4
IRC: fkol_k4
Εκτύπωση

Re: μετατροπή flv σε mp3 με bash script

Δημοσίευσηαπό Tassos10 » 27 Δεκ 2013, 15:48

Μάλιστα από ότι βλέπω λίγο περίπλοκο, για να το μάθεις καλά έχει πολλά πράγματα...

Ευχαριστώ πολύ! :)
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-50-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.2.0-49-generic
3 Intel Core2 Quad CPU Q9400 2.66GHz ‖ RAM 3954 MiB ‖ ASRock G31M-S
4 nVidia G92 [GeForce 9800 GT] [10de:0614] {nvidia}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02)
Tassos10
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 472
Εγγραφή: 29 Μαρ 2010, 10:43
Εκτύπωση


Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι