Bei Video-Datei NUR den Audiostream neu codieren, da TV diesen nicht abspielt

marko11

Lt. Junior Grade
Registriert
Nov. 2009
Beiträge
258
Guten Abend,

ich habe eine Videodatei, die mein Samsung-TV von 2016 leider nur ohne Ton abspielt (es kommt eine Meldung, dass True HD nicht abgespielt werden kann). Mit welcher Software kann ich die Datei nun so konvertieren, dass nur der Ton in ein gängiges Format gewandelt wird, ohne dass es gleichzeitig dass Video neu encodiert? Mein PC ist sehr alt und bräuchte dafür wahrscheinlich Wochen ;)

Vielen Dank
 
ffmpeg. Windows-Build von hier. Letzte stabile version (aktuell 4.2.1) als Static herunterladen und ffmpeg.exe aus bin/ in den Ordner entpacken wo du es brauchst.

cmd.exe öffnen, mit cd ordner in den ordner wechseln wo deine videodatei liegt
Bash:
ffmpeg -i video.mkv -map 0 -map_metadata 0 -map_chapters 0 -c copy -c:a ac3 -b:a 640K -ac 6 output.mkv

Übernimmt alle Spuren (-map 0) und Metadaten (-map_metadata 0 -map_chapters 0) aus der Eingabedatei (-i video.mkv), kopiert alle Spuren unverändert (-c copy) mit Außnahme von Audiospuren (-c:a ac3) welche in Dolby Digital (= AC3) mit 640 Kbps (-b:a 640K) neu encodiert und auf 5.1 Surround heruntergemixt (-ac 6) werden.

Wenn man Angst hat von der Kommandozeile sollte auch eine äquivalente GUI wie HandBrake (EDIT: Kann HandBrake scheinbar nicht) gehen, ist aber weniger übersichtlich da durchzusteigen.
 
Zuletzt bearbeitet:
für dein "einfachen" Start, würde ich avidemux empfehlen, ffmpeg kann (fast) alles, jedoch nicht ganz so einfach

video "copy", audio konvertieren zu ... DTS, PCM, ... zum Beispiel, als muxer den mkv muxer nehmen, fertig.

1577773628759.png
 
Eine Tonspur kann auch mit VLC geändert werden.
 
Mkv2vob ... das war damals ein Tool für die PS3, was aber auf einfache und schnelle Weise genau das macht, was Du suchst.
 
Marco01_809 schrieb:
ffmpeg. Windows-Build von hier. Letzte stabile version (aktuell 4.2.1) als Static herunterladen und ffmpeg.exe aus bin/ in den Ordner entpacken wo du es brauchst.

cmd.exe öffnen, mit cd ordner in den ordner wechseln wo deine videodatei liegt
Bash:
ffmpeg -i video.mkv -map 0 -map_metadata 0 -map_chapters 0 -c copy -c:a ac3 -b:a 640K -ac 6 output.mkv

Übernimmt alle Spuren (-map 0) und Metadaten (-map_metadata 0 -map_chapters 0) aus der Eingabedatei (-i video.mkv), kopiert alle Spuren unverändert (-c copy) mit Außnahme von Audiospuren (-c:a ac3) welche in Dolby Digital (= AC3) mit 640 Kbps (-b:a 640K) neu encodiert und auf 5.1 Surround heruntergemixt (-ac 6) werden.

Wenn man Angst hat von der Kommandozeile sollte auch eine äquivalente GUI wie HandBrake (EDIT: Kann HandBrake scheinbar nicht) gehen, ist aber weniger übersichtlich da durchzusteigen.
Herzlichen Dank, habe den Befehl in eine *.bat gepackt im selben Ordner und ausgeführt. Prozess läuft noch, ich berichte dann :)
Ergänzung ()

alturismo schrieb:
für dein "einfachen" Start, würde ich avidemux empfehlen, ffmpeg kann (fast) alles, jedoch nicht ganz so einfach

video "copy", audio konvertieren zu ... DTS, PCM, ... zum Beispiel, als muxer den mkv muxer nehmen, fertig.

Anhang anzeigen 859186
Teste ich mit der zweiten Datei mit dem selben Problem, dann hab ich den Vergleich. Danke!
 
Marco01_809 schrieb:
ffmpeg. Windows-Build von hier. Letzte stabile version (aktuell 4.2.1) als Static herunterladen und ffmpeg.exe aus bin/ in den Ordner entpacken wo du es brauchst.

cmd.exe öffnen, mit cd ordner in den ordner wechseln wo deine videodatei liegt
Bash:
ffmpeg -i video.mkv -map 0 -map_metadata 0 -map_chapters 0 -c copy -c:a ac3 -b:a 640K -ac 6 output.mkv

Übernimmt alle Spuren (-map 0) und Metadaten (-map_metadata 0 -map_chapters 0) aus der Eingabedatei (-i video.mkv), kopiert alle Spuren unverändert (-c copy) mit Außnahme von Audiospuren (-c:a ac3) welche in Dolby Digital (= AC3) mit 640 Kbps (-b:a 640K) neu encodiert und auf 5.1 Surround heruntergemixt (-ac 6) werden.

Wenn man Angst hat von der Kommandozeile sollte auch eine äquivalente GUI wie HandBrake (EDIT: Kann HandBrake scheinbar nicht) gehen, ist aber weniger übersichtlich da durchzusteigen.

Hallo, Du hattest mir mit Deinem Tipp damals sehr geholfen - nutze ich regelmäßig. Könntest Du mir ggf. noch den ffmpeg-Befehl nennen, mit dem ich zusätzlich zu der Sache mit dem Ton noch das Video in einen h264-codec konvertieren kann? mit h265 kommt mein Fernseher häufig nicht zurecht. Vielen Dank im Voraus!!
 
Klar, du tauscht -c copy durch

Code:
-c:v libx264 -preset veryfast -crf 20 -profile:v high -level 4.1 -maxrate 40M -bufsize 30M

aus. Damit wird die Videospur in H.264 konvertiert mit dem x264-Encoder. High ist hier das gewählte H.264-Profil, High sollte jedes moderne Abspielgerät können, nur ältere Mobilgeräte können eventuell bestenfalls Main. maxrate, bufsize und level sind weitere Beschränkungen um die Kompatibilität mit Hardware-Abspielgeräten sicherzustellen.

CRF gibt die Qualität an, 20 ist gemeinhin als gute Qualität akzeptiert. Höhere Werte = mehr Daten werden weggeschmissen = niedrige Qualität. +- 6 beim CRF ergeben etwa eine verdoppelung/halbierung der Dateigröße. Werte zwischen 16 und 28 sind sinnvoll.

Das Video konvertieren dauert aber deutlich länger als nur das Audio. Das kommt stark auf deine CPU an, das musst du mal ausprobieren. Durch bessere Presets erhält man eine bessere Kompressionseffizienz, also mehr Qualität pro Größe oder weniger Größe für die gleiche Qualität. Die Auswirkungen sind aber eher gering, das langsamste Preset, veryslow, spart weniger als die Hälfte ein gegenüber veryfast. Wenn du die Filme nicht archivierst sondern nur einmal abspielen willst kann man gut die Effizienz auf Kosten der Dateigröße herunterfahren um Zeit zu sparen.
 
Zuletzt bearbeitet:
Marco01_809 schrieb:
Klar, du tauscht -c copy durch

Code:
-c:v libx264 -preset veryfast -crf 20 -profile:v high -level 4.1 -maxrate 40M -bufsize 30M

aus. Damit wird die Videospur in H.264 konvertiert mit dem x264-Encoder. High ist hier das gewählte H.264-Profil, High sollte jedes moderne Abspielgerät können, nur ältere Mobilgeräte können eventuell bestenfalls Main. maxrate, bufsize und level sind weitere Beschränkungen um die Kompatibilität mit Hardware-Abspielgeräten sicherzustellen.

CRF gibt die Qualität an, 20 ist gemeinhin als gute Qualität akzeptiert. Höhere Werte = mehr Daten werden weggeschmissen = niedrige Qualität. +- 6 beim CRF ergeben etwa eine verdoppelung/halbierung der Dateigröße. Werte zwischen 16 und 28 sind sinnvoll.

Das Video konvertieren dauert aber deutlich länger als nur das Audio. Das kommt stark auf deine CPU an, das musst du mal ausprobieren. Durch bessere Presets erhält man eine bessere Kompressionseffizienz, also mehr Qualität pro Größe oder weniger Größe für die gleiche Qualität. Die Auswirkungen sind aber eher gering, das langsamste Preset, veryslow, spart weniger als die Hälfte ein gegenüber veryfast. Wenn du die Filme nicht archivierst sondern nur einmal abspielen willst kann man gut die Effizienz auf Kosten der Dateigröße herunterfahren um Zeit zu sparen.


Mega, vielen Dank!

statt
ffmpeg -i video.mkv -map 0 -map_metadata 0 -map_chapters 0 -c copy -c:a ac3 -b:a 640K -ac 6 output.mkv

nehme ich also nun
ffmpeg -i video.mkv -map 0 -map_metadata 0 -map_chapters 0 -c:v libx264 -preset veryfast -crf 20 -profile:v high -level 4.1 -maxrate 40M -bufsize 30M -c:a ac3 -b:a 640K -ac 6 output.mkv


Ja, ist nur zum 1x abspielen und wird nicht archiviert :)

Meine CPU ist übrigens uralt: AMD Phenom II X4 945 mit 3Ghz und 4 GB RAM :)
 
Ok, also ich habe diesen Befehl:

ffmpeg -i video.mkv -map 0 -map_metadata 0 -map_chapters 0 -c:v libx264 -preset veryfast -crf 20 -profile:v high -level 4.1 -maxrate 40M -bufsize 30M -c:a ac3 -b:a 640K -ac 6 output.mkv

in eine "ffmpegTOh264.bat" reinkopiert und ausgeführt. Liegt im selben ordner wie ffmpeg, analog der bat für deinen ersten Befehl (der nur Audio ändert).
Nach dem Ausführen öffnet sich für 1 Sekunde ein DOS-Fenster, es entsteht eine 0 KB große output.mkv und sonst passiert gar nichts. Habe ich mich etwa vertippt?
 
Ist dein Ursprungsvideo in 4K? Das passt nicht in die Level-Beschränkung 4.1. H264 mit 4K kann der TV vermutlich ohnehin nicht. Dann musst du noch -sws_flags lanczos -vf scale=1920:1080 einfügen um das Video auf 1080p herunterzuskalieren.

Ansonsten musst du den Befehl wirklich selbst von cmd.exe aus starten damit du die Fehlerausgabe von ffmpeg siehst.
 
Marco01_809 schrieb:
Ist dein Ursprungsvideo in 4K? Das passt nicht in die Level-Beschränkung 4.1. H264 mit 4K kann der TV vermutlich ohnehin nicht. Dann musst du noch -sws_flags lanczos -vf scale=1920:1080 einfügen um das Video auf 1080p herunterzuskalieren.

Ansonsten musst du den Befehl wirklich selbst von cmd.exe aus starten damit du die Fehlerausgabe von ffmpeg siehst.

Wenn ich nichts falsch gemacht habe, müsste das der output sein:

Code:
K:\browser download\ffmpeg-4.2.1-win64-static\bin>ffmpeg -i video.mkv -map 0 -map_metadata 0 -map_chapters 0 -sws_flags lanczos -vf scale=1920:1080 -c:v libx264 -preset veryfast -crf 20 -profile:v high -level 4.1 -maxrate 40M -bufsize 30M -c:a ac3 -b:a 640K -ac 6 output.mkv
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.1.1 (GCC) 20190807
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[matroska,webm @ 000001bcde36ac80] Could not find codec parameters for stream 3 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, matroska,webm, from 'video.mkv':
  Metadata:
    creation_time   : 2020-01-31T08:53:29.000000Z
    ENCODER         : Lavf58.29.100
  Duration: 01:37:12.86, start: 0.000000, bitrate: 5094 kb/s
    Chapter #0:0: start 0.000000, end 251.835000
    Metadata:
      title           : Chapter 01
    Chapter #0:1: start 251.835000, end 550.884000
    Metadata:
      title           : Chapter 02
    Chapter #0:2: start 550.884000, end 822.238000
    Metadata:
      title           : Chapter 03
    Chapter #0:3: start 822.238000, end 973.598000
    Metadata:
      title           : Chapter 04
    Chapter #0:4: start 973.598000, end 1294.752000
    Metadata:
      title           : Chapter 05
    Chapter #0:5: start 1294.752000, end 1502.459000
    Metadata:
      title           : Chapter 06
    Chapter #0:6: start 1502.459000, end 1770.435000
    Metadata:
      title           : Chapter 07
    Chapter #0:7: start 1770.435000, end 2037.452000
    Metadata:
      title           : Chapter 08
    Chapter #0:8: start 2037.452000, end 2203.785000
    Metadata:
      title           : Chapter 09
    Chapter #0:9: start 2203.785000, end 2513.010000
    Metadata:
      title           : Chapter 10
    Chapter #0:10: start 2513.010000, end 2790.705000
    Metadata:
      title           : Chapter 11
    Chapter #0:11: start 2790.705000, end 3042.331000
    Metadata:
      title           : Chapter 12
    Chapter #0:12: start 3042.331000, end 3391.555000
    Metadata:
      title           : Chapter 13
    Chapter #0:13: start 3391.555000, end 3700.530000
    Metadata:
      title           : Chapter 14
    Chapter #0:14: start 3700.530000, end 3993.198000
    Metadata:
      title           : Chapter 15
    Chapter #0:15: start 3993.198000, end 4304.425000
    Metadata:
      title           : Chapter 16
    Chapter #0:16: start 4304.425000, end 4526.355000
    Metadata:
      title           : Chapter 17
    Chapter #0:17: start 4526.355000, end 4841.545000
    Metadata:
      title           : Chapter 18
    Chapter #0:18: start 4841.545000, end 5204.408000
    Metadata:
      title           : Chapter 19
    Chapter #0:19: start 5204.408000, end 5832.854000
    Metadata:
      title           : Chapter 20
    Stream #0:0: Video: hevc (Main), yuv420p(tv), 1920x1038 [SAR 1:1 DAR 320:173], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
    Metadata:
      BPS-eng         : 4425832
      DURATION-eng    : 01:37:12.827000000
      NUMBER_OF_FRAMES-eng: 139848
      NUMBER_OF_BYTES-eng: 3226889495
      _STATISTICS_WRITING_APP-eng: mkvmerge v42.0.0 ('Overtime') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2020-01-31 08:53:29
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      DURATION        : 01:37:12.831000000
    Stream #0:1(ger): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
    Metadata:
      BPS-eng         : 1508999
      DURATION-eng    : 01:37:12.854000000
      NUMBER_OF_FRAMES-eng: 546830
      NUMBER_OF_BYTES-eng: 1100221960
      _STATISTICS_WRITING_APP-eng: mkvmerge v42.0.0 ('Overtime') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2020-01-31 08:53:29
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      ENCODER         : Lavc58.54.100 ac3
      DURATION        : 01:37:12.864000000
    Stream #0:2(ger): Subtitle: subrip (default) (forced)
    Metadata:
      title           : forced
      BPS-eng         : 0
      DURATION-eng    : 01:33:09.667000000
      NUMBER_OF_FRAMES-eng: 8
      NUMBER_OF_BYTES-eng: 208
      _STATISTICS_WRITING_APP-eng: mkvmerge v42.0.0 ('Overtime') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2020-01-31 08:53:29
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      DURATION        : 01:37:10.789000000
    Stream #0:3(ger): Subtitle: hdmv_pgs_subtitle
    Metadata:
      title           : complete
      BPS-eng         : 25452
      DURATION-eng    : 01:35:44.697000000
      NUMBER_OF_FRAMES-eng: 1778
      NUMBER_OF_BYTES-eng: 18277465
      _STATISTICS_WRITING_APP-eng: mkvmerge v42.0.0 ('Overtime') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2020-01-31 08:53:29
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      DURATION        : 01:37:10.789000000
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (ac3 (native) -> ac3 (native))
  Stream #0:2 -> #0:2 (subrip (srt) -> ass (ssa))
  Stream #0:3 -> #0:3 (hdmv_pgs_subtitle (pgssub) -> ass (ssa))
Subtitle encoding currently only possible from text to text or bitmap to bitmap
 
Ah ups, er versucht die Untertitelspuren zu konvertieren was nicht möglich ist, da muss noch ein -c:s copy dazu um die wie sie sind zu übernehmen. Die Optionen für die Skalierung kannst du wieder rausnehmen da das Video schon eine passende Auflösung hat und so nur unnötig skaliert wird.
 
  • Gefällt mir
Reaktionen: marko11
Den TV als Monitor nutzen ist nicht möglich? Ich hab mein PC per HDMI an meinem Samsung TV (der ist von 2010 und die USB Ports sind mittlerweile zu ausgeleiert :s).
Der Mediaplayer (MPC bei mir) wird dann über Tablet/Handy per Unified Remote App gesteuert, notfalls auch der komplette PC.

Grad bei Videos die man nach dem gucken eh löscht ist das mit dem Konvertieren doch zu aufwändig und kostenintensiv wenn die CPU stundenlang auf max arbeitet. Zudem die CPU im Sommer dann noch schön den Raum aufheizt (ich hatte jahrelang n Phenom II X4 955). Dann noch das herumkopieren auf den externen Speicher, dein PC hat sicher USB 2 das dauert auch. Total unattraktiv dein Setting xD
So kann man gleich loslegen, auch 4k Videos. UT jeder Art, alles was der Player frisst.
Bei 4k HDR Videos muss man aber paar Einstellungen im Player vornehmen damit es nicht so farblos/blass aussieht.
 
Usi schrieb:
Den TV als Monitor nutzen ist nicht möglich? Ich hab mein PC per HDMI an meinem Samsung TV (der ist von 2010 und die USB Ports sind mittlerweile zu ausgeleiert :s).
Der Mediaplayer (MPC bei mir) wird dann über Tablet/Handy per Unified Remote App gesteuert, notfalls auch der komplette PC.

Grad bei Videos die man nach dem gucken eh löscht ist das mit dem Konvertieren doch zu aufwändig und kostenintensiv wenn die CPU stundenlang auf max arbeitet. Zudem die CPU im Sommer dann noch schön den Raum aufheizt (ich hatte jahrelang n Phenom II X4 955). Dann noch das herumkopieren auf den externen Speicher, dein PC hat sicher USB 2 das dauert auch. Total unattraktiv dein Setting xD
So kann man gleich loslegen, auch 4k Videos. UT jeder Art, alles was der Player frisst.
Bei 4k HDR Videos muss man aber paar Einstellungen im Player vornehmen damit es nicht so farblos/blass aussieht.
Grundsätzlich gute Idee, aber PC steht im Keller (wie es sich gehört!) und Wohnzimmer ist im EG - wäre ein extrem langes Kabel. Die meisten Video (Quelle meist: onlinetvrecorder) kopiere ich einfach auf die Synology NAS und fertig, Gibt ganz selten mal den Fall, das was konvertiert werden muss (vielleicht 1 von 100 Videos)
Ergänzung ()

Marco01_809 schrieb:
Ah ups, er versucht die Untertitelspuren zu konvertieren was nicht möglich ist, da muss noch ein -c:s copy dazu um die wie sie sind zu übernehmen. Die Optionen für die Skalierung kannst du wieder rausnehmen da das Video schon eine passende Auflösung hat und so nur unnötig skaliert wird.

Konvertieren hat geklappt, vielen Dank!!
 
Zuletzt bearbeitet:
Zurück
Oben