TV-Aufnahme (.ts) von 1080i in 720p konvertieren

23_uhr_59

Lt. Junior Grade
Registriert
Juli 2011
Beiträge
261
Tag zusammen

Ich möchte gerne ein paar TV-Aufnahmen - die im .ts-Format vorliegen - von 1080i 25fps in 720p 50fps umwandeln.
Auf normalem Wege, mit den gängigen Konvertierungsprogrammen, scheint das nicht zu funktionieren. Bei Handbrake z.B. kann man zwar die 50fps einstellen, am Ende kommen aber trotzdem nur 25fps bei raus.
Nach meiner bisherigen Recherche scheint es mit dem Tool "MeGUI", "AviSynth" und einem entsprechenden Script für AviSynth zu funktionieren. Jedoch komme ich damit nicht klar, somal man AviSynth auch nicht händisch starten kann.
Ein paar Anleitungen hab ich zwar gefunden, aber die sind entweder für mich ungeeignet oder es funktioniert nicht so wie angegeben. Das meiste ist auch auf englisch und das kann ich leider nicht sonderlich gut.

Kennt sich da zufällig jemand aus und kann mir da weiterhelfen?
 
FFMPEG mit den richtigen Parametern kann YADIF-Deinterlacing mit doppelter Framerate: allerdings wäre hier wirklich der Grund für die Konvertierung interessant, Deinterlacing können heute fast alle Abspielgeräte und die, die es nicht können scheitern meist auch an 50 FPS.
 
Der Grund ist einfach eine Verkleinerung der Dateigröße. Dabei geht zwar etwas von der Bildqualität flöten, aber bei schnellen Bewegungen, wie bei Sportübertragungen, läuft das Bild schon spürbar flüssiger. Je nach dem um was es sich handelt ist mir bei Manchem dann 720p mit 50fps doch lieber. Und die Dateigröße reduziert sich um mindestens die Hälfte.

Mit tsMuxeR geht das nicht, da stehen 50fps nichtmal zur Wahl.
 
Zuletzt bearbeitet:
Ich hab mal meine Batch-Dateien durchsucht, die folgende Batch-Datei führt De-Interlacing für alle *.ts Dateien im aufgerufenen Verzeichnis durch, skaliert auf 720p und packt die Daten in den MP4-Container (Achtung, der Pfad zum FFMPEG Installationsverzeichnis muss per Hand angepasst werden und mit crf kann zwischen Qualität und Dateigröße gewählt werden):
Code:
for /R . %%f in (*.ts) do "C:\Program Files\ffmpeg\bin\ffmpeg.exe" -i "%%f" -filter:v "yadif=1,scale=1280:720" -vcodec libx264 -preset veryslow -tune fastdecode -threads 0 -crf 20 -strict experimental -c:a aac -b:a 128k "%%~nf.mp4"
 
Mal noch ne blöde Frage... wie öffne ich FFMPEG? :rolleyes: Hab's jetzt grad mal runter geladen, aber da ist nirgends eine auszuführende Datei.
 
Über das Terminal bzw. Kommandozeile.
 
FFMPEG hat keinerlei grafische Oberfläche - und ist wohl dennoch das mächtigste Tool in diesem Bereich. Erstell eine neue Batch-Datei und gib dieser z.B. den Namen "Konvertieren.bat": in diese Datei kopierst du den geposteten Code und speicherst die Datei. Anschließend die Batch-Datei in den Ordner kopieren, der die *.ts Dateien enthält und doppelt auf die Batch-Datei klicken. Damit das ganze ohne Änderung der Batch-Datei funktioniert, muss "ffmpeg.exe" in folgendem Verzeichnis liegen: "C:\Program Files\ffmpeg\bin"

EDIT: Herunterladen von hier - ansonsten bekommst du wohl die Linux-Version.
 
Oder nutze XMediaRecode. Das nutzt auch ffmpeg und stellt eine grafische Oberfläche zur Verfügung.
 
Der Downloadlink war gute Idee. Die enthaltenen Dateien sind nämlich ganz andere als vorher :D
Joa, hab alles gemacht wie beschrieben und eine kleine Datei durchlaufen lassen. So wie es aussieht hat es bestens geklappt. Dauert halt seine Zeit, aber war ja abzusehen. Vielleicht doch mal meinen 6 Jahre alten i7 übertakten :rolleyes: Bei gut 60° unter Vollast ist ja noch Luft.

Soweit also schon mal besten DanK!


Ein paar Fragen stellen sich jetzt natürlich noch...
-------------------------------
for /R . %%f in (*.ts) do "C:\Program Files\ffmpeg\bin\ffmpeg.exe" -i "%%f" -filter:v "yadif=1,scale=1280:720" -vcodec libx264 -preset veryslow -tune fastdecode -threads 0 -crf 20 -strict experimental -c:a aac -b:a 128k "%%~nf.mp4"
-------------------------------
-crf 20
Das ist wahrscheinlich die Qualitätsstufe richtig? Je niedriger desto geringer Bitrate.
-c:a aac
Lässt sich hier auch direkt "ac3" eintragen? Das wäre nämlich meistens der Ausgangscodec.
-b:a 128k
Wird wohl die Audio-Bitrate sein?
"%%~nf.mp4"
Kann ich hier auch einfach z.B. MKV wählen?

Die Tonspur kann im Grunde immer so bleiben wie sie ist. Stell ich dann einfach das Gleiche wie aus der Quelldatei ein und FFMPEG lässt es dann so, oder gibt es dafür einen bestimmten Wert zum eintragen?


Hier ist noch einiges rot. Ist das schlimm? Irgendwelche Fehler?
Unbenannt.png
 
Zuletzt bearbeitet:
Penske1 schrieb:
Dauert halt seine Zeit, aber war ja abzusehen.
Man kann auch mit dem Preset spielen, allerdings wird z.B. bei "-preset fast" die Datei größer als bei "-preset veryslow".

Penske1 schrieb:
-crf 20
Das ist wahrscheinlich die Qualitätsstufe richtig? Je niedriger desto geringer Bitrate.
Das ist die Qualitätstufe, jedoch ist es genau anders herum: 0 führt visuell zu keiner Verschlechterung gegenüber unkomprimierten Material, 23 ist Standard und 51 bedeutet schlechteste Qualität. DVB-S2 Material ist bereits mit relativ geringer Bitrate kodiert, ich denke bei 23 solltest du keinen Unterschied in der Bildqualität feststellen können.

Penske1 schrieb:
-c:a aac
Lässt sich hier auch direkt "ac3" eintragen? Das wäre nämlich meistens der Ausgangscodec.
Man kann die Audiospuren auch einfach kopieren, indem man "-c:a copy" einträgt und die Bitrate komplett entfernt. Falls mehr als eine Audiospur vorhanden ist (z.B. ZDF, ORF), so kopiert FFMPEG alle Audiospuren: man kann die zu kopierenden Audiospuren zwar auswählen, leider ist der AC3-Ton je nach Sender an einer anderen Position.

Penske1 schrieb:
"%%~nf.mp4"
Kann ich hier auch einfach z.B. MKV wählen?
Genau, die Dateiendung legt den Container fest. Es können nicht alle Streams in allen Containern abgelegt werden (z.B. unterstützt der alte MPEG2-Container kein H264), aber MP4 und MKV können annähernd das gleiche.

Die roten Ausgaben scheinen normal zu sein, zumindest bei DVB-S2 Material bekomme ich diese am Start und an Schnittpunkten.
 
Alles klärchen, da bin ich soweit im Bilde. Nochmals vielen Dank!

Wenn AC-3 manchmal Probleme macht, könnte ich die Tonspur doch gleich aus der Quelldatei nehmen und mit MKVmerge wieder in die neue Datei einfügen.
Muss ich dafür wie bei der Bitrate das "-c:a" im Code auch einfach weglassen?
Ergänzung ()

Jetzt hab ich mal das erste halbstündige Video durchlaufen lassen. Am PC läuft das Video, am Samsung TV aber nicht (Videocodec nicht unterstützt).

Nach dem Werbeschnitt sah das Fenster übrigens so aus:
Unbenannt.png
Am Anfang lief es noch normal, sah wie beim letzten Screenschot aus.
Ab dem Werbeschnitt rödelte es die ganze Zeit bis zum Ende so durch.

Ich mach mal einen Vergleich mit MediaInfo...
Eine andere - nicht von mir stammende - etwa gleichermaßen konvertierte Datei sieht wie folgt aus:

Code:
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format-Profil                            : High@L4.1
Format-Einstellungen für CABAC           : Ja
Format-Einstellungen für ReFrames        : 4 frames
Codec-ID                                 : V_MPEG4/ISO/AVC
Dauer                                    : 26min
Bitrate                                  : 3 488 Kbps
Breite                                   : 1 280 Pixel
Höhe                                     : 720 Pixel
Bildseitenverhältnis                     : 16:9
Modus der Bildwiederholungsrate          : konstant
Bildwiederholungsrate                    : 50,000 FPS
ColorSpace                               : YUV
ChromaSubsampling                        : 4:2:0
BitDepth/String                          : 8 bits
Scantyp                                  : progressiv
Bits/(Pixel*Frame)                       : 0.076
Stream-Größe                             : 665 MiB (88%)
verwendete Encoder-Bibliothek            : x264 core 133 r2334 a3ac64b
Default                                  : Ja
Forced                                   : Nein


Hier die Datei die ich eben konvertiert habe:

Code:
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format-Profil                            : High@L5
Format-Einstellungen für CABAC           : Nein
Format-Einstellungen für ReFrames        : 16 frames
Codec-ID                                 : V_MPEG4/ISO/AVC
Dauer                                    : 25min
Bitrate                                  : 4 044 Kbps
Breite                                   : 1 280 Pixel
Höhe                                     : 720 Pixel
Bildseitenverhältnis                     : 16:9
Modus der Bildwiederholungsrate          : konstant
Bildwiederholungsrate                    : 50,000 FPS
ColorSpace                               : YUV
ChromaSubsampling                        : 4:2:0
BitDepth/String                          : 8 bits
Scantyp                                  : progressiv
Bits/(Pixel*Frame)                       : 0.088
Stream-Größe                             : 748 MiB (90%)
verwendete Encoder-Bibliothek            : x264 core 148 r2638 7599210
Default                                  : Ja
Forced                                   : Nein
DURATION                                 : 00:25:51.780000000

Nahezu identisch, aber ein paar Unterschiede gibt es.
Nur weiß ich nicht in wie weit das eine Rolle spielt und was ich dazu ändern müsste?
 
Zuletzt bearbeitet:
Das High@L5 könnte Probleme machen, allerdings hat zumindest mein 5 Jahre alter Philips TV keine Probleme damit (bei Philips ist das schon was besonderes, dort wird so gut wie gar nichts abgespielt): versuch mal die Option "-level:v 4.1" hinter "-vcodec libx264", damit werden ein paar Optionen des Encoders deaktiviert. Du kannst auch noch ein "-t 10" hinter "-vcodec libx264" hängen, damit werden nur die ersten 10 Sekunden umgewandelt (geht zum Testen deutlich schneller).
 
Zuletzt bearbeitet:
SUPER!!! hat geklappt. Hab's mir fast gedacht dass es an der blöden "5" liegt. Ist mir nämlich bisher auch noch nirgends unter gekommen. Meist 4.0 oder 4.1.
Juti, dann hätte ich soweit fertig :)

Besten Dank für Deine erstklassige Hilfe! Bin begeistert!

Tschaui
 
Noch eine Info bezüglich AC3: mit der Option "-map" kann festgelegt werden, welche Streams kopiert werden. In deinem Screenshot von Post #10 siehst du z.B. am Anfang "Stream #0:0 -> #0:0 (h264(native) -> h264(libx264))" und "Stream #0:1 -> #0:1 -> (ac3(native) -> aac(native))" - es werden also beide Streams verarbeitet. Wenn du jetzt eine Aufnahme mit mehreren Audiostreams hast, so stehen dort noch weitere Zeilen: um nur den AC3-Ton zu kopieren, suchst du in der Ausgabe zunächst nach der entsprechenden Stream-Nummer (z.B. #0:2) und fügst anschließend eine "-map"-Option für den Videostream und den Audiostream hinzu (z.B. "-map 0:0 -map 0:2). Damit wird nur der Videostream und der AC3 Audiostream kopiert, alle anderen Streams werden verworfen.
 
Zuletzt bearbeitet:
Ah OK, gut zu wissen. Wird aber wahrscheinlich nicht notwendig sein, da es sich fast immer um TV-Aufnahmen handeln wird und ich diese vorher so oder so mit dem "TS-Doctor" schneide. Wenn da Tonspuren enthalten sind die ich nicht brauche - in der Regel sind das alle bis auf eine Deutsche - fliegen die dort schon raus.
Aber trotzdem Danke ;)
 
Habt ihr eventuell noch einen Tipp um mehrere .ts-Dateien zusammenzufügen und anschließend z.B. in
MKV umzuwandeln? Mein Receiver teilt Aufnahmen immer in 1GB große Dateien.
 
Das zusammenfügen sollte mit dem "tsMuxeR" eigentlich problemlos klappen. Kostet auch nüscht. Ich nehme zum bearbeiten von TS-Dateien den "TS-Doctor", der kostet aber 30,- €.
In MKV umwandeln kannst du mit MKVmerge. Wenn du keine Abspielprobleme mit TS hast, dann bringt das aber eigentlich nichts. MKVmerge packt das nämlich auch nur in einen MKV-Container, was auch schnell geht. Das is aber im Grunde nur eine neue Verpackung.
Ansonsten musst es schon richtig umwandeln und neu codieren, mit "Handbrake" z.B., das dauert aber auch erheblich länger. Oder eben mit FFMPEG und den von dir gewünschten Parametern.
 
Zuletzt bearbeitet:
Vielleicht ist es jetzt ein bisschen spät, wollte das aber in dieser super Anleitung zu FFMPEG noch ergänzen : Im TSDoctor kann man unter Werkzeuge und "File Merger" TS-Datein wunderbar zusammenfügen. Habe das schon oft benutzt. Gab noch nie einen Fehler und geht schnell.

Ich gehe ansonsten gleich vor, schneide erst mit TSDoctor und verkleinere dann. Ich habe das bisher mit handbrake gemacht, bei großen TS-Dateien (z.B. aus ARD und ZDF) dauert das aber immer länger als 4 Stunden mit 100% Prozessorlast. Habe crf 18 und High@L4.1 eingestellt und auch CBR

Ich suche was, was schneller geht, vielleicht macht das FFMPEG schneller. Habe es nach dieser Anleitung gerade mal angeworfen. Die Prozessorlast ist auch bei 100 %. Jetzt ist noch die Frage, wie lange es dauert. Anders als bei handbrake kann ich das wohl bei FFMPEG nicht sehen.
Nach 20 Minuten hat er jetzt gerade mal 35 MB zusammen. Das dauert wohl auch lange ..........
 
Den Fortschritt sieht man bei FFMPEG nur in der Konsolenausgabe, dort werden sowohl die FPS als auch die aktuelle Position in der Datei in Minuten und Sekunden ausgegeben. Mit dem Preset kann man FFMPEG schon deutlich schneller machen, es sinkt damit aber die Kompressionsrate.
 
Zurück
Oben