На форуме GoToMeeting есть ветка, где видео g2m транскодируются в MP4 с фиксированным размером 1920x1080. Таким образом, если вы транслируете 1290x1104, ваш MP4 заканчивается черной рамкой вокруг, что делает его 1920x1080. Смотрите скриншот ниже.

Я сделал ffprobe для выходного файла, созданного GoToMeeting. Если бы я использовал 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

Выход MP4 из конвертера GoToMeeting:

    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 ответ1

2

В основном, чтобы соответствовать MP4, созданный GTM, но без заполнения, я бы использовал

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

Некоторые заметки:

MP4, созданный GTM, является переменной частотой кадров, которую FFmpeg не делает для вывода MP4. Условная частота кадров, сообщаемая GTM MP4, составляет ~ 30 кадров в секунду, так что я это и использовал. Обратите внимание, что опция -r должна присутствовать, так как .g2m сообщает частоту кадров 1000 !, которая является ложным флагом, и FFmpeg будет пытаться выводить с этой скоростью, если не переопределено -r 30

Если размеры .g2m имеют нечетные значения, то они должны быть четными. Для этого вставьте -vf scale=2*trunc(iw/2):-2 после опции -i meeting.g2m .

Странно, что звуковая дорожка с частотой 44100 Гц понижается до 16K. Вы должны держать его с исходной скоростью, поэтому пропустите -ar 16k

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .