Невозможно воспроизвести аппаратно закодированный H.264 на сервере RED5 с помощью FFmpeg - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть USB-камера, которая способна к H.264 сжатию на плате.Я использую следующую FFmpeg командную строку, чтобы получить закодированный H.264 с камеры и поместить его в контейнер 'flv':

ffmpeg -y -f dshow -vcodec h264 -i video="USB Camera" -vcodec copy -copyinkf -f flv c:\temp\test.flv 

Это работаеткак и ожидалось, и я могу просматривать видео с помощью VLC без проблем.Следуя этому принципу, я пытаюсь выполнить потоковую передачу на сервер RED5 , используя следующую команду:

ffmpeg -y -f dshow -vcodec h264 -i video="USB Camera" -vcodec copy -copyinkf -f flv rtmp://192.168.75.34/live/livestream 

Сервер RED5 обнаруживает поток, но я не могу подключитьсяи просмотрите его, используя мою основную программу Python .

Если я делаю то же самое, но использую FFmpeg , чтобы выполнить H.264 кодирование захвата по умолчанию (MJPEG), он будет транслироваться правильно.

Я не уверен, есть ли какой-либо флаг в командной строке, который я мог бы пропустить?Любая помощь в этом вопросе будет принята с благодарностью.

Вот вывод журнала второй команды FFmpeg:

C: \ ffmpeg-latest-20190219 \ ffmpeg-static \ bin> ffmpeg -y -f dshow -vcodec h264 -i video = "USB-камера" -vcodec copy -copyinkf -f flv rtmp: //192.168.75.176/live/livestream "

ffmpeg версия N-93151-gff03418348 Copyright (c) 2000-2019 разработчики FFmpeg, созданные с конфигурацией gcc 8.2.1 (GCC) 20190212: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls -enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec -enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt libavutil 56. 26.100 / 56. 26.100 libavcodec 58. 47.102 / 58. 47.102 libavformat58. 26.101 / 58. 26.101 libavdevice 58. 6.101 / 58. 6.101 libavfilter 7. 48.100 / 7. 48.100 libswscale 5. 4.100 / 5. 4.100 libswresample 3. 4.100 / 3. 4.100 libpostproc 55. 4.100 / 55. 4.100

Вход № 0, dshow, из 'video = USB Camera':Продолжительность: N / A, начало: 1834145.825000, битрейт: N / AПоток № 0: 0: видео: h264 (основной) (H264 / 0x34363248), yuv420p, 1920x1080, 30 кадров в секунду, 30 тбр, 10000 тыс. Тбн, 20000 тыс. Тбк

Вывод # 0, flv, в 'rtmp: //192.168.75.176/live/livestream':Метаданные:кодировщик: Lavf58.26.101Поток № 0: 0: видео: h264 (основной) ([7] [0] [0] [0] / 0x0007), yuv420p, 1920x1080, q = 2-31, 30 кадров в секунду, 30 тбр, 1 кбит / с, 10000 кбит / с

Отображение потока:Поток № 0: 0 -> # 0: 0 (копия)Нажмите [q], чтобы остановить, [?] Для помощиframe = 39 fps = 3,2 q = -1,0 Lsize = 976kB время = 00: 00: 07.10 битрейт = 1124,8 кбит / с скорость = 0,59x видео: 975kB аудио: 0kB субтитры: 0kB другие потоки: 0kB глобальные заголовки: 0kB издержки мультиплексирования:0.106110%

...