Поток FFMPEG h.264 в VLC из raw YUV444 приводит к появлению черного экрана и аудиошума

Поток FFMPEG h.264 в VLC из raw YUV444 приводит к появлению черного экрана и аудиошума

Я передаю необработанные кадры YUV444 640x480 в ffmpeg из программы на C++ с помощью stdout (формат канала: pipe<-Y<-U<-V целых кадров каждый). ffmpeg кодирует их с помощью h.264 и транслирует видео через UDP на IP-адрес по моему выбору.

Когда я не транслирую и сохраняю видео на записывающем устройстве как файл -mp4 с помощью ffmpeg, все работает. Но когда я транслирую по сети и пытаюсь получить в VLC, поток принимается и запускается таймер воспроизведения под экраном видео,но изображение черное, видео не отображается.Также у меня есть некоторые потрескивающие звуки на моем аудиовыходе. Необработанное видео не имеет звуковой дорожки.

Мои настройки ffmpeg следующие:

ffmpeg -y -loglevel verbose -f rawvideo -r 25 -c:v rawvideo -pix_fmt yuv444p -s 640x480 -i - -c:v libx264 -preset superfast -framerate 25 -f mpegts udp://192.168.150.1:20001

в VLC (GUI) я просто использую "open network stream" с udp://@:20001. Порт открыт, я проверил его с помощью простого фиктивного отправителя/получателя. Почти те же аргументы cli для записи видео приводят к идеально воспроизводимому видео при записи в файл и его загрузке:

ffmpeg -y -loglevel verbose -f rawvideo -r 25 -c:v rawvideo -pix_fmt yuv444p -s 640x480 -i - -c:v libx264 -preset superfast -framerate 25 video.mp4

Если я попытаюсь транслировать то же самое записанное видео с помощью

ffmpeg -i video.mp4 -v 0 -vcodec mpeg4 -f mpegts udp://192.168.150:20001

Я снова получаю черный экран, как указано выше.

Вывод журнала VLC идентифицирует мой поток как mp3, так что, возможно, виновато распознавание типа потока. Но почему?

Вотвывод консоли ffmpegиЖурнал VLC.

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

PS: Перенес этот вопрос сюда со Stack Overflow, поскольку на него не было ответов, старый неотвеченный дубликат удален.

решение1

Хотя основная проблема не была решена, подсказки @Gyans помогли мне решить мою проблему. Использование других плееров (PotPlayer) или более старой версии VLC заставило потоковое отображение работать, и это все, что мне было нужно.

Связанный контент