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 (Baseline) 和 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