Использование ffmpeg для передачи видео Logitech C920 на два выхода: перекодирование в RTMP-поток и аппаратное кодирование в файл - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь использовать ffmpeg, чтобы принимать видео от Logitech C920 и транслировать его в поток RTMP (например, Twitch).Но есть один поворот: я хотел бы также сохранить в файл исходное видео с аппаратным кодированием 1080p.

Поэтому я хотел бы сделать оба из них:

  1. Перекодироватьввод с разрешением 852x480 и загрузка в RTMP-URL с 1500 битрейтом
  2. Сохранение исходного ввода в файл без перекодирования (C920 выполняет аппаратное кодирование с кодеком h.264)

Я попытался сохранить видео в файл без перекодирования, используя следующее:

ffmpeg -s 1920x1080 -framerate 30 -pixel_format uyvy422 -vcodec h264 -f avfoundation -i 'HD Pro' -copyinkf -vcodec copy out.mp4

Это, кажется, почти работает.Индикатор веб-камеры включается, и после нескольких секунд работы получается массивный файл (1 ГБ или около того).Тем не менее, я не могу открыть файл с VLC.Я вижу предупреждение от ffmpeg:

[AVBSFContext @ 0x7fbd4fc3e9c0] No start code is found.
HD Pro: could not find codec parameters

Я на Mac, использую ffmpeg 4.1.

Редактировать:

Кажется, файл, который создает ffmpeg, не являетсяКодированный h264, но довольно необработанные данные о пикселях.Я начинаю думать, что невозможно установить веб-камеру в режим h264 с Mac (в большинстве других случаев это делается в Linux с v4l2).

Для всех, кто ответит на вопрос, я будудоволен решением, которое включает и Linux.Особенно, если я могу использовать загрузочный живой USB.

...