Es gibt einen Thread im GoToMeeting-Forum, in dem g2m-Videos in MP4 mit einer festen Größe von 1920 x 1080 transkodiert werden. Wenn Ihre Übertragung also 1290 x 1104 ist, wird Ihr MP4 rundherum mit einem schwarzen Rand versehen, sodass es 1920 x 1080 ist. Siehe Screenshot unten.
Ich habe einen ffprobe für die von GoToMeeting erstellte Ausgabedatei durchgeführt. Wenn ich ffmpeg verwenden würde, welche Einstellungen wären erforderlich, um die Ausgabe ohne die schwarzen Ränder nachzuahmen?
Das ursprüngliche g2m verfügt über die folgenden Codec-Informationen:
Input #0, asf, from 'c:\meeting.g2m':
Metadata:
DeviceConformanceTemplate: L2
WMFSDKNeeded : 0.0.0.0000
WMFSDKVersion : 12.0.9600.17415
IsVBR : 1
WM/ToolVersion : 7.16.0 Build 4800
WM/ToolName : GoToMeeting
BitRateFrom the writer: 173566
Audio samples : 18871
Video samples : 6977
recording time : Fri, 29 Apr 2016 12:12:57 Mountain Daylight Time
Duration: 00:31:30.99, start: 0.000000, bitrate: 176 kb/s
Stream #0:0: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 1 channels, fltp, 48 kb/s
Stream #0:1: Data: none, 2 kb/s
Stream #0:2: Video: g2m (G2M5 / 0x354D3247), rgb24, 1290x1104, 125 kb/s, 1k tbr, 1k tbn, 1k tbc
Unsupported codec with id 0 for input stream 1
Die MP4-Ausgabe des GoToMeeting-Konverters lautet:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:\meeting.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2016-05-12 20:00:32
Duration: 00:31:30.94, start: 0.000000, bitrate: 163 kb/s
Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080, 98 kb/s, 6.13 fps, 29.85 tbr, 90k tbn, 180k tbc (default)
Metadata:
handler_name : Citrix h264 stream handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 16000 Hz, mono, fltp, 64 kb/s (default)
Metadata:
handler_name : AAC stream handler
Ich sehe Erwähnungen zu h264 (Baseline) und aac (LC), bin mir aber nicht sicher, wie Sie das in ffmpeg konfigurieren, um das MP4 mit diesen Einstellungen zu erstellen.
Antwort1
Um weitgehend mit der von GTM erstellten MP4-Datei übereinzustimmen, aber ohne Auffüllung, würde ich verwenden
ffmpeg -i meeting.g2m -profile:v baseline -c:v libx264 -crf 23 -r 30 -pix_fmt yuv420p
-c:a aac -b:a 64k -ar 16k -ac 1 output.mp4
Einige Notizen:
Das von GTM erzeugte MP4 hat eine variable Bildrate, was FFmpeg für die MP4-Ausgabe nicht tut. Die von GTM MP4 gemeldete nominelle Bildrate beträgt ~30fps, also habe ich diese verwendet. Beachten Sie, dass die -r
Option vorhanden sein sollte, da .g2m eine Bildrate von 1000! meldet, was ein falsches Flag ist, und FFmpeg wird versuchen, mit dieser Rate auszugeben, wenn dies nicht durch-r 30
Wenn die Abmessungen der .g2m-Datei ungerade Werte haben, müssen sie gerade gemacht werden. Fügen Sie dazu -vf scale=2*trunc(iw/2):-2
nach der -i meeting.g2m
Option ein.
Es ist seltsam, dass eine 44100 Hz Audiospur auf 16K heruntergesampelt wird. Sie sollten die Quellrate beibehalten, also überspringen Sie-ar 16k