Я использую ffmpeg и ffplay для потоковой передачи необработанного видео H.264 между двумя компьютерами. Вот как выглядит передающая командная строка:

ffmpeg -i input.h264 -f mpegts udp:10.0.2.101:1234

И это принимающая сторона:

ffplay -f h264 -f mpegts udp://127.0.0.1:1234

Проблема в том, что воспроизведение на принимающей стороне показывает гораздо худшее качество, чем то, что я вижу при воспроизведении исходного файла на стороне отправителя. Сеть на самом деле представляет собой симулированную сеть на моем компьютере (две виртуальные машины), поэтому нет потери пакетов или чего-либо еще.

Что я сделал не так?

1 ответ1

2

Вы перекодируете видеопоток. Обратите внимание, что если вы не укажете видеокодек, ffmpeg выберет его для вас - в вашем случае это MPEG-2 с настройками по умолчанию, который действительно будет выглядеть довольно плохо.

Если вы планируете копировать поток битов, добавьте опцию -c:v copy в вашу команду отправки.

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