Konwertujesz FLAC na MP3 za pomocą FFMPEG?

0

Więc używam ffmpeg do konwersji plików flac z określonego folderu do formatu mp3 przy szybkości transmisji bitów wynoszącej 320k.

Używam tej odpowiedzi jako odniesienia.

https://stackoverflow.com/a/41096234/9259505

Tak więc polecenie, którego używam w powłoce poleceń systemu Windows to

ffmpeg  -i infile.flac  -c:v copy  -b:a 320k  outfile.mp3

ale to tylko jedna piosenka. Jak zmodyfikować to polecenie, aby cyklicznie przeglądać wszystkie pliki .flac w folderze katalogu roboczego?

Sam próbowałem tych 2, ale one nie działają.

for file in 'C:\Users\...' *.flac; do ffmpeg -i "$file" -c:v copy -q:a 0 "${file%.flac}".mp3; done

ffmpeg  -i "*.flac"  -c:v copy  -q:a 0  outfile.mp3

Uwaga: używam kopii -c: v, ponieważ okładki albumów są transkodowane, co powoduje, że plik jest znacznie większy, którego staram się przede wszystkim unikać. Więc polecenie musi skopiować strumienie.

System operacyjny: Windows 10

Desmond Smith
źródło
1
Jaki system operacyjny W twoim pytaniu brakuje tych istotnych informacji. Proszę edytować go.
DavidPostill

Odpowiedzi:

1

Mówisz, że używasz powłoki poleceń systemu Windows, ale pierwszy pokazany wiersz poleceń (ten, który zaczyna się „dla pliku w”) nie wygląda jak Windows, a bardziej jak jakieś polecenie powłoki Linuxa. Drugi nie zadziała, ponieważ ffmpeg nie zaakceptuje znaku wieloznacznego jako specyfikacji pliku wejściowego.

To jedno wierszowe polecenie systemu Windows robi to, co chcesz, aby ffmpeg (używając powyższych opcji) pobierał jako dane wejściowe z kolei każdy plik flac w bieżącym folderze i wyprowadzał, w tym samym folderze, plik mp3 z tym samym nazwa przed rozszerzeniem:

W odpowiedzi:

for %A in (*.flac) do ffmpeg  -i "%~nA.flac"  -c:v copy  -b:a 320k  "%~nA.mp3"

Jeśli plik mp3 już istnieje, ffmpeg zapyta, czy chcesz go zastąpić.

Uwaga: powyższe polecenie jest spreparowane dla wiersza poleceń. Nie będzie działać w skrypcie wsadowym. W tym celu należy podwoić wszystkie znaki procentu (%) w ten sposób

W skrypcie wsadowym (cmd):

for %%A in (*.flac) do ffmpeg  -i "%%~nA.flac"  -c:v copy  -b:a 320k  "%%~nA.mp3"
Michael Harvey
źródło
jedyny działający kod, jaki znalazłem ty
MonsterMMORPG