FFmpeg für m2t und Sony Bravia - funktioniert nicht

-f mp4 -c:v libx264 -preset veryslow -tune grain -profile:v high422 -flags +ildct+ilme 

Ich bereite ein Video vor, das von meinem NAS zu einem älteren Sony Bravia gestreamt werden soll (DLNA). Ich habe erfolgreich abspielbare m2t-Dateien (1080i) mit VideoStudio erstellt (AVC, high@L4, Cabac, h264, vbr max 20 Mbps, 25 fps, interlaced). Interlaced ist wichtig, da der Fernseher 1080p von NAS oder USB anscheinend nicht verarbeiten kann. Ich habe ein altes Familienvideo in prores/mov, das VideoStudio nicht als Eingabe akzeptiert, also versuche ich, es mit FFmpeg in etwas zu konvertieren, das für den Fernseher akzeptabel ist.

  1. Ich habe keine Möglichkeit gefunden, m2t-Dateien mit FFmpeg zu erstellen.

  2. Der Fernseher ist angeblich in der Lage, MP4 zu verarbeiten, aber unabhängig von den versuchten Einstellungen – und ich habe Dutzende ausprobiert, die alle gut auf VLC abgespielt werden (einschließlich BD-kompatibel, PSP-Profile und andere), sagt der Fernseher nur „nicht abspielbar“.

Hat jemand eine Idee für eine der beiden Routen?

Bei der Suche im Internet habe ich erfahren, dass der Sony Bravia dafür bekannt ist, sehr wählerisch zu sein, aber ich bin sicher, dass jemand den Schlüssel gefunden hat ...? (außer denen bei pavtube, die behaupten, ein kommerzielles Tool zu haben, das den Zweck erfüllt)

FFprobe der funktionierenden m2t-Datei:

Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50 tbc 
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 384 kb/s

Eigenschaften von funktionierendem m2t von MediaTab:

===================== General =====================
Id                          : 0 (0x0)
Complete name               : D:\ThisWorks.m2t
Format                      : BDAV
Format info                 : Blu-ray Video
File size                   : 2.21 GB
Duration (ms)               : 21mn 10s
Overall bit rate mode       : Variable
Overall bit rate            : 14.9 Mbps
Maximum Overall bit rate    : 25.5 Mbps

===================== Video =====================
Id                          : 4113 (0x1011)
Menu ID                     : 1 (0x1)
Format                      : AVC
Format info                 : Advanced Video Codec
Formatprofile               : High@L4
Formatsettings, CABAC       : Yes
Formatsettings, ReFrames    : 2 frames
Formatsettings, GOP         : N=1
Codec Id                    : 27
Duration (ms)               : 21mn 10s
Bit rate mode               : Variable
Bit rate                    : 13.9 Mbps
Maximum bit rate            : 20.0 Mbps
Width                       : 1 920 pixels
Height                      : 1 080 pixels
Display aspect ratio        : 16:9
Frame rate                  : 25.000 fps
Color space                 : YUV
Chroma subsampling          : 4:2:0
Bit depth                   : 8 bits
Scan type                   : Interlaced
Scan type, store method     : Separated fields
Scan order                  : Top Field First
Bits/(Pixel*Frame)          : 0.269
Stream size                 : 2.06 GB (93%)

===================== Audio =====================
Id                          : 4352 (0x1100)
Menu ID                     : 1 (0x1)
Format                      : AC-3
Format info                 : Audio Coding 3
Mode extension              : CM (complete main)
Formatsettings, Endianness  : Big
Codec Id                    : 129
Duration (ms)               : 21mn 10s
Bit rate mode               : Constant
Bit rate                    : 384 Kbps
Channel(s)                  : 2 channels
Channel positions           : Front: L R
Sampling rate               : 48.0 KHz
Frame rate                  : 31.250 fps (1536 spf)
Compression mode            : Lossy
Stream size                 : 58.2 MB (3%)
Geben Sie das Protokoll ffmpeg -i file.m2tvon einer der funktionierenden VideoStudio-Dateien frei.
Vielen Dank! Wäre dies das, wonach Sie suchen?Stream #0:0[0x1011]: Video: h264 (Hoch) (HDMV / 0x564D4448), yuv420p (oben zuerst), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps , 50 tbr, 90k tbn, 50 tbc Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, Stereo, fltp, 384 kb/s
Zusätzliche Informationen zur Arbeit mit der m2t-Datei wurden dem ursprünglichen Beitrag auf Vorschlag von Gyan hinzugefügt. Vielen Dank.

Antworten (2)

Versuchen

ffmpeg -i in -vf format=yuv420p,setsar=1 -g 25 -c:v libx264 -tune grain -profile:v high -refs 2 -x264opts bluray-compat=1:fake-interlaced=1:nalhrd=vbr:aud=1 -maxrate 20M -bufsize 20M -c:a ac3 -ac 2 out.ts

FFmpeg kann nicht replizieren Scan type, store method : Separated fields, aber es spielt vielleicht keine Rolle.

Anfangs musste x264opts nalhrd einen Bindestrich hinzufügen, um die Einstellung zu testen :). Leider hat es nicht funktioniert. Generierte Datei immer noch "nicht abspielbar". Ich habe bemerkt, dass die Ausgabe progressiv war, also habe ich "Fälschung" entfernt. Leider immer noch nicht spielbar. Die generierte Ausgabe hat einen tbr von 25, wo die Arbeit 50 hat - ich weiß nicht, ob das das Problem ist.
` Auftrag: Funktioniert m2t Gyan's Proposal ...and without 'fake-' Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50 tbc Stream #0:0[0x100 ]: Video: h264 (Hoch) ([27][0][0][0] / 0x001B), yuv420p( progressiv), 1920 x 1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:0[0x100]: Video: h264 (Hoch) ([27][0][0 ][0] / 0x001B), yuv420p (oben zuerst), 1920 x 1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc `
Die Ausgabe soll progressiv sein, wird aber als interlaced gekennzeichnet, daher diefake
Thx, aber unabhängig davon, ob die Ausgabe vorliegt fake-interlecedoder interlacedder Bravia sich weigert, sie abzuspielen :( Gibt es eine Chance, dass die Ausgabe einen tbr von 50 anzeigt?
Hinzufügen-r 50 -vsync vfr
Thx, aber damit blieb tbr unverändert, während fps auf 50 und tbc auf 100 stieg.
Teilen Sie eine kleine Kostprobe Ihres Inputs.
Sicher - gibt es eine Möglichkeit, das zu tun?

Eureka!

Nach vielen langen Nächten und viel Suchen gelang es mir, ein ffmpeg-Setup zu erstellen, das ein interlaced 1080i erzeugt, das mein alter (2009) Sony Bravia von meinem NAS streamen kann. Dies ist die Befehlszeile:

ffmpeg -y -i in.mov -c:v libx264 -pix_fmt yuv420p -level 4.0 -refs 1 ^
-x264opts b-pyramid=0:bluray-compat=1:interlaced=1:nal-hrd=vbr:aud=1 -maxrate 20M -bufsize 30M ^
-c:a ac3 -b:a 384k -f mpegts out.m2ts

Ich denke, eines der kritischen Elemente war die Einstellung des richtigen Pegels. Der Fernseher kann mit -refs 1 und 2 umgehen.

Ich kann nicht sagen, dass ich die volle Tiefe aller Einstellungen und Optionen verstehe, und Verbesserungsvorschläge sind mehr als willkommen!

Die von ffmpeg generierten m2ts haben einen tbr von 25:

Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 384 kb/s

... während die ursprüngliche "funktionierende m2t-Datei" einen tbr von 50 hatte. Ich weiß nicht, was das bedeutet, und zumindest scheint es keinen Unterschied zu machen

Die Eingabe ist ein 1080i dnxhd von Davinci Resolve (leider hat DR nur sehr wenige Optionen für die Bereitstellung von Interlaced-Ausgaben).