GoToMeeting 論壇上有一個帖子,其中將 g2m 視頻轉碼為固定尺寸 1920x1080 的 MP4。因此,如果您播放的解析度為 1290x1104,則 MP4 的周圍會出現黑色邊框,使其解析度為 1920x1080。請參閱下面的螢幕截圖。
我對 GoToMeeting 建立的輸出檔案進行了 ffprobe。如果我要使用 ffmpeg,模擬沒有黑色邊框的輸出的設定是什麼?
原始的g2m有以下編解碼訊息:
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
GoToMeeting 轉換器的輸出 MP4 為:
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
我看到提到 h264(基線)和 aac(LC),但不確定如何在 ffmpeg 中配置它以使用這些設定建立 MP4。
答案1
為了主要匹配 GTM 創建的 MP4,但沒有填充,我會使用
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
一些筆記:
GTM產生的MP4是可變幀率的,而FFmpeg對於MP4輸出則不這樣做。 GTM MP4 報告的名義幀速率約為 30fps,這就是我所使用的。請注意,該-r
選項應該存在,因為 .g2m 報告的幀速率為 1000! ,這是一個錯誤標誌,如果沒有被覆蓋,FFmpeg 將嘗試以該速率輸出-r 30
如果 .g2m 的尺寸有奇數值,則必須將它們設為偶數。為此,請在選項-vf scale=2*trunc(iw/2):-2
後插入-i meeting.g2m
。
奇怪的是 44100 Hz 音軌被降採樣到 16K。您應該將其保持在來源速率,因此請跳過-ar 16k