Find dts file with ffmpef

Chris90

Cadet 4th Year
Registriert
Nov. 2016
Beiträge
76
Hallo together,

I'M searching for code that can filter my files to dts.

Actual I take this code to convert dts to ac3.

Code:
for /R %%a in ("\*.mkv") do (ffmpeg -y -i "%%\~a" -map 0 -vcodec copy -scodec copy -acodec ac3 -b:a 640k "%%\~dpna\_AC3.mkv" )

The problem is I have files with .mkv without dts-codec. How can I filter it?

Thanks for your help.

Greetings
 
Mit ffprobe oder mediainfo nur Dateien mit DTS suchen und diese in eine (txt) Liste schreiben und mit dieser dann arbeiten (in $(cat liste_dts_dateien.txt) anstatt "\*.mkv")
 
Vielen Dank für die Antwort.

Wie kann ich mit ffprobe oder mediainfo danach suchen?
 
man ffprobe

wrapper skript, shell-funktion bzw. skript mit Rückgabewert (stackoverrun, via google),

so etwa mit
Code:
enthaelt_dts=$(ffprobe "$input" 2>&1 |grep "Audio:" |grep -o DTS )
if [ "$enthaelt_dts" = "DTS" ] ; then
 echo "$input" >> ausgabe.list 
fi
oder eine anders ausgeben lassen ffprobe -v error -show_streams -print_format csv <input> oder bei mediainfo die mediainfo "--Inform=Audio;%Format%" *mkv


Die Ausgabe kann sehr stark individualisiert werden mit beiden tools - eigene Templates bzw. csv, json, xml .
 
Vielen Dank für die Hilfe!

Ich wollte es gerade so umsetzen das es alle Dateien darin umbenennt.
Habe hier wohl aber noch einen Fehler drin. CMD geht auf und schleißt sich sofort wieder.

Code:
for /f /R "delims=" %%a in ('dir /b /a-d *.mkv') do
    enthaelt_dts=$(ffprobe "$input" 2>&1 |grep "Audio:" |grep -o DTS )
    if [ "$enthaelt_dts" = "DTS" ] ; then
         ren "%%~a" "%%~na _dts%%~xa"
    fi
pause

Hab es auch mal mit folgendem Code in der if probiert was auch nicht geklappt hat.
Code:
ren %%~dpna.mkv %%~na_dts.mkv

Wäre für weitere Unterstützng sehr dankbar.
 
Here my perfect code for all.
for /R %%a in (*.mkv) do ffmpeg -y -i "%%~a" 2>&1 | find "Audio: dts" && ffmpeg -i "%%~a" -map 0 -c:v copy -c:a ac3 -b:a 640k -c:s copy "%%\~dpna\_AC3.mkv"
 
  • Gefällt mir
Reaktionen: Nase
Zurück
Oben