리눅스에서 데스크탑을 가짜 웹캠으로 사용하기 데스크톱 (윈도우)의 라이브 스트림을 만들고 싶습니다.

캡처 된 비디오를 가짜 웹캠으로 사용하여 무료 스트리밍 사이트를 사용하여 Linux 데스크톱 (윈도우)의 라이브 스트림을 만들고 싶습니다. Windows에는이를위한 많은 도구가 있습니다. ffmpeg를 사용하면 특정 창에서 입력을 캡처 할 수 있지만 비디오를 플래시에서 사용할 수있는 가짜 웹캠 스타일 장치로 출력하는 방법을 찾을 수 없습니다.

누구든지 이것을 수행하는 방법 (또는 소프트웨어)을 추천 할 수 있습니까?



답변

v4l2loopback 을 설치할 수 있습니다 . 웹캠을 시뮬레이트하는 커널 모듈입니다. 다음과 같이로드하십시오.

modprobe v4l2loopback

그런 다음 ffmpeg와 같은 프로그램을 사용하여 비디오 스트림을 장치 / dev / video0으로 보내야합니다. ffmpeg를 사용하여 데스크탑을 캡처하여 / dev / video0으로 전달하려면 다음 명령 줄을 사용할 수 있습니다.

ffmpeg -f x11grab -r 15 -s 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0

다른 프레임 속도를 원하면 -r 값을 15에서 다른 것으로 변경하십시오. 해상도는 -s 매개 변수에서 선택됩니다. 화면의 왼쪽 상단 모서리에서 오프셋을 지정하려면 “-i : 0.0 + x, y”형식으로 -i 매개 변수에 오프셋을 전달하십시오. 여기서 x 및 y는 각각 수평 및 수직 오프셋입니다.


답변

mplayer와 함께 v4l2loopback을 사용하십시오 .

  1. 다운로드 해,
  2. 컴파일하고 ( makeand su -c 'make install')
  3. 함께 모듈을로드 su -c 'modprobe v4l2loopback',
  4. 그런 다음 examples/yuv4mpeg_to_v4l2.cv4l2loopback 소스 폴더 의 파일에서 한 줄 을

    v.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
    

    v.fmt.pix.pixelformat = V4L2_PIX_FMT_YVU420;
    
  5. 및 수행 make이 폴더에.

  6. 그런 다음 examples디렉토리 에서 다음 과 같이 실행하십시오 .

    mkfifo /tmp/pipe  # only needed once, as long as you do not delete the file /tmp/pipe
    ./yuv4mpeg_to_v4l2 < /tmp/pipe &
    mplayer movie.mp4 -vf scale=480:360 -vo yuv4mpeg:file=/tmp/pipe
    

    어디 교체 movie.mp4비디오 파일의 이름으로. /dev/video0루프백 장치로 교체 하십시오.

MPlayer는 stdin에서도 모든 종류의 웹 스트림, 모든 종류의 비디오 파일을 재생할 수 있습니다! 방금 독일 뉴스 사이트 인 http://www.tagesschau.de 의 파일로 테스트했습니다 .

TS=$(wget "http://www.tagesschau.de/multimedia/video/" -q -O - | grep --regexp='http.*\.webm"' | sed -e 's%.*href="%%' -e 's%\.webm".*%\.webm%')
./yuv4mpeg_to_v4l2 < /tmp/pipe &
mplayer $TS -vf scale=480:360 -vo yuv4mpeg:file=/tmp/pipe

$ TS 대신에 -(stdin의 약자)를 넣을 수 있습니다. 그리고 mplayer 앞에서 ffmpeg 명령은 출력을 stdout으로 리디렉션합니다. 그래서 같은 :

./yuv4mpeg_to_v4l2 < /tmp/pipe &
fmpeg -someOptions ... -o - | mplayer - -vf scale=480:360 -vo yuv4mpeg:file=/tmp/pipe

ffmpeg 명령이 어떻게 생겼는지 말하지 않았기 때문에 마지막 것을 테스트하지 않았습니다.


답변

어떤 배포판을 사용하고 있습니까? 나는 Livestream 웹 기반 “스튜디오”와 결합 된 아치 아래의 WebCamStudio로 성공했습니다. 그래도 그것을 사용한지 오래되었습니다.

http://www.ws4gl.org/

정확히 무엇을하려고합니까? x11grab로 컴파일 된 ffmpeg는 데스크탑을 기록 할 수 있습니다. 나는 그것을 Ustream으로 밀어 넣는 데 성공하지 못했지만 다시 한참되었고 지금하고있는 일이 더 이상 효과가 없을 것이라고 생각합니다.

데스크톱이 아닌 파일을 스트리밍하려면 ( “창”, “VLC”라고 말할 때 생각합니다), Livestream으로 작업 할 수있는 올바른 방향을 알려줄 수 있습니다 (아마도 Ustream). 나는 실험을 통해이 작업을 수행하는 방법을 서툴게 파악하고 있습니다. 환상적이지는 않지만 Livestream과 함께 작동합니다.

Justin.tv에는 VLC에서 서비스로 스트리밍 할 수있는 스크립트도 있습니다.

http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API


답변

먼저 appear.in은 번거 로움없이 원하는 것을 할 것입니다 (나는 제휴하지 않습니다) : http://appear.in/

둘째, 최근 Linux 지원 (!)을 추가 한 OBS를 사용하여 Twitch 또는 기타 서비스로 스트리밍 할 수 있습니다. https://obsproject.com/

OBS는 또한 Ubuntu에서 화면을 캡처하는 동안 멀티플렉싱 시스템 사운드 및 오디오 입력의 훨씬 더 어려운 문제를 해결합니다 ( universe지금까지 찾은 리포지토리 에서는 해결되지 않음 ).

멋진 유닉스 솔루션이 없습니다. 그러나 그들은 현실 세계에서 나를 위해 일했습니다.