Какие настройки ffmpeg будут производить аналогичный вывод для GoToMeeting?

575
Sun

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

enter image description here

Я сделал 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 с этими настройками.

0

1 ответ на вопрос

2
Gyan

В основном, чтобы соответствовать 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

Я рад, что я не единственный. Я всегда получаю это сообщение "Входной поток # 0: 2 кадра изменен с размера: 1290x1104 fmt: rgb24 на размер: 1288x1101 fmt: rgb24". В файле g2m есть и 1290x1104, и 1288x1101? Re: Аудио, не совсем понимаю 44,1 КБ, 1 канал, 64 КБ до 16 КБ, моно, 48 КБ. Разве 1 ​​канал не моно? И почему изменение битрейта аудио также сбивает с толку. Sun 7 лет назад 0
Аудио кодируется, поэтому изменение битрейта не так уж странно. Смена видеокадра может быть изменением середины записи g2m. Чтобы сделать это согласованным, используйте `-vf scale = 1290x1104, setsar = 1` Gyan 7 лет назад 0
Спасибо! Выходной файл похож на g2m. Я получал несколько громоздких MP4 (думаю, из-за того, что не использовал `-r 30`), так что это работает лучше. Их конвертер плохо работает с VLC, и видео не воспроизводится правильно, поэтому нам пришлось прибегнуть к использованию FFMPEG вместо их поставляемого инструмента. Потрясающая работа! Sun 7 лет назад 0

Похожие вопросы