2015-07-17 1 views
0

Так что я просто пытаюсь получить поток и преобразовать его в rawvideo и создать новую веб-камеру с v4l2.linux ffmpeg get rtmp stream and convert in live webcam v4l2

ffmpeg -i "rtmp://XX.XX.XXX.XXX/XXXXXXXXXXXX/test" -vcodec rawvideo -y -f v4l2 /dev/video2 

Он работает долго, а потом я получил это:

ffmpeg version 2.7.1 Copyright (c) 2000-2015 the FFmpeg developers 
    built with gcc 5.1.0 (GCC) 
    configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-shared --enable-version3 --enable-x11grab 
    libavutil  54. 27.100/54. 27.100 
    libavcodec  56. 41.100/56. 41.100 
    libavformat 56. 36.100/56. 36.100 
    libavdevice 56. 4.100/56. 4.100 
    libavfilter  5. 16.101/5. 16.101 
    libavresample 2. 1. 0/2. 1. 0 
    libswscale  3. 1.101/3. 1.101 
    libswresample 1. 2.100/1. 2.100 
    libpostproc 53. 3.100/53. 3.100 
Input #0, flv, from 'rtmp://XX.XX.XXX.XXX/XXXXXXXXXXXX/test': 
    Metadata: 
    fileSize  : 0 
    audiochannels : 2 
    encoder   : obs-output module (libobs version 0.10.1-67-g94edb7f) 
    Duration: 00:00:00.00, start: 1774.608000, bitrate: N/A 
    Stream #0:0: Video: h264 (High), yuv420p(tv, bt709), 1920x1080, 2560 kb/s, 30.30 fps, 30 tbr, 1k tbn, 60 tbc 
    Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 196 kb/s 
[v4l2 @ 0x7f7326cb4480] Unable to open V4L2 device '/dev/video2' 
Output #0, v4l2, to '/dev/video2': 
    Metadata: 
    fileSize  : 0 
    audiochannels : 2 
    encoder   : Lavf56.36.100 
    Stream #0:0: Video: rawvideo (I420/0x30323449), yuv420p, 1920x1080, q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc 
    Metadata: 
     encoder   : Lavc56.41.100 rawvideo 
Stream mapping: 
    Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native)) 
Could not write header for output file #0 (incorrect codec parameters ?): No such file or directory 
+0

преобразование медиа-потока в аппаратные средств является трудной задачей :-) –

+0

, когда вы получите ошибку? например вы вызываете ffmpeg для подачи петлевого устройства и t работает (например,) 10 минут, а затем останавливается? или он не может начинаться с (казалось бы, случайного) раза? или он хорошо работал на одной машине, но теперь вы используете другую (или обновили), она перестала работать вообще? –

ответ

0

Для создания виртуальных видео устройств необходимо установить и включить v4l2loopback. Сообщение «Нет такого файла или каталога» означает, что вы не включили устройство.

sudo modprobe v4l2loopback video_nr=2 

Это создаст устройство /dev/video2.

Обновление: в ответ на комментарий umläute убедитесь, что модуль v4l2loopback является постоянным, на случай, если ваш сервер перезагрузится. Время ожидания может быть очень большим.

Пример CentOS: Persistent Module Loading

+0

похоже, что у OP уже есть * v4l2loopback * running, иначе я не могу объяснить, что «он работает долгое время» ... –

+0

Я интерпретировал его как «требуется много времени, а затем сбой». Время относительное :) – aergistal

+0

ах, вы имеете в виду, как в «он останавливается некоторое время, а затем возвращается в консоль с сообщением об ошибке»; а не «он работает в течение некоторого времени, а затем сбой» –

Смежные вопросы