Wpis z mikrobloga

@Koliat: skrypt powershell który korzystając z ffprobe i ffmpeg zrobi to:

dajesz ścieżkę pliku wejściowego MKV
skrypt konwertuje wszystkie ścieżki dźwiękowe do AC3 jeśli nie są AC3, jeśli są AC3 to ich nie rusza
plik finalny nie posiada oryginalnych ścieżek które zostały skonwertowane + zachowuje pozostałe elementy pliku (napisy, znaczniki rozdziałów etc)

Przykład:
przed: film.mkv który ma DTS angielskie 1500 kbps, AC3 polskie 240 kbps, napisy srt pol
po: film.mkv który
@FLAC: a to nie jest do obrobienia po prostu linia poleceń dla tych programów? Jak wiesz jak ręcznie zrobić jeden z tymi ffprobe ffmpeg to zrobisz wszystkie, powershell ubierze Ci to w pętle i tyle
@Koliat: nie takie proste, bo każdy plik może mieć różną strukturę strumieni, więc nie można na sztywno zrobić że zawsze pierwszy strumień to ten do transkodowania a drugi nie.

Najpierw trzeba wyciągnąć informację ffprobe, potem po jej przetrawieniu żeby wiedzieć co ona oznacza kilka ifów i muxowania.
@Koliat: no właśnie nie wiem, totalnie nie wiem jak się operuje w powershellu na danych. Programuję co prawda ale w języku który nie ma nic wspólnego i nie jest zupełnie podobny ani do powershella ani do np pythona i nie chce mi się go uczyć tylko dla tej jednej rzeczy.
@FLAC: Jak podasz mi składnię dla FFprobe i ffmpeg to powinno dać radę. W powershellu operujesz na obiektach, a nie na tekście - więc tu np. polecenie "ConvertFrom-Json" przekształca Ci JSONa w obiekt z właściwościami, do których możesz się odwoływać i wokół których budować logikę
@Koliat: właściwie cała składnia jest w tym skrypcie https://github.com/gacopl/dvmkv2mp4/blob/main/dvmkv2mp4

z tego co widzę to najpierw jest robione to:
ffprobe.exe -loglevel error -select streams a -show entries stream=type:stream=codec name:stream=index:stream tags=language -of csv=p=0 "input"

co daje listę audio w postaci (na przykład):
1,truehd
2,ac3,pol,Dubbing PL
3,ac3,pol,Lektor PL
4,dts,ger,dubbing
streamID/kodek/kod języka/opis

potem jest jakaś magia z budowaniem chyba listy streamów audio z pliku i konwersja innych od AC3
if [ "$codec" == "truehd" ];