
캡처한 비디오를 가짜 웹캠으로 사용하여 무료 스트리밍 사이트를 사용하여 내 Linux 데스크탑의 라이브 스트림(창)을 만들고 싶습니다. Windows에는 이를 위한 많은 도구가 있습니다. ffmpeg를 사용하면 특정 창에서 입력을 캡처할 수 있지만 플래시에서 사용할 수 있는 가짜 웹캠 스타일 장치로 비디오를 출력하는 방법을 찾을 수 없습니다.
이를 수행하는 방법(또는 소프트웨어)을 추천할 수 있는 사람이 있습니까?
답변1
설치할 수 있습니다v4l2루프백. 웹캠을 시뮬레이트하는 커널 모듈입니다. 다음을 사용하여 로드하세요.
modprobe v4l2loopback
/dev/videoN
그런 다음 ffmpeg와 같은 프로그램을 사용하여 비디오 스트림을 장치 ( N
새로 생성된 장치에 해당하는 번호 - 아마도 가장 높은 번호) 로 보내야 합니다 . 데스크탑을 캡처하여 ffmpeg로 전달하려면 /dev/videoN
다음 명령줄을 사용할 수 있습니다.
ffmpeg -probesize 100M -framerate 15 -f x11grab -video_size 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/videoN
-framerate
다른 프레임 속도를 원하면 값을 15에서 다른 값으로 변경하십시오 .
해상도는 매개변수에서 선택됩니다 -video_size
. 화면의 왼쪽 상단 모서리로부터의 오프셋을 지정하려면 이를 양식의 -i 매개변수에 전달하십시오. -i :0.0+x,y
여기서 x와 y는 각각 가로 및 세로 오프셋입니다.
답변2
다운로드 해,
그것을 컴파일하고 (
make
및su -c 'make install'
),로 모듈을 로드합니다
su -c 'modprobe v4l2loopback'
.examples/yuv4mpeg_to_v4l2.c
그런 다음 v4l2loopback 소스 폴더의 파일에서 한 줄을 다음에서 변경하십시오.v.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
에게
v.fmt.pix.pixelformat = V4L2_PIX_FMT_YVU420;
그리고
make
이 폴더에서 하세요.그런 다음 다음과 같이 디렉토리에서 실행하십시오
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 &
ffmpeg -someOptions ... -o - | mplayer - -vf scale=480:360 -vo yuv4mpeg:file=/tmp/pipe
ffmpeg 명령이 어떻게 생겼는지 알려주지 않았기 때문에 마지막 항목을 테스트하지 않았습니다.
답변3
어떤 배포판을 사용하고 있습니까? 저는 Livestream 웹 기반 "스튜디오"와 결합된 Arch의 WebCamStudio로 성공을 거두었습니다. 그래도 사용한지는 좀 됐네요.
정확히 무엇을 하려는 건가요? x11grab으로 컴파일된 ffmpeg는 데스크탑을 기록할 수 있습니다. Ustream으로 전송하는 데 제한적인 성공을 거두었지만 시간이 꽤 지났고 제가 하던 일이 더 이상 작동하지 않을 것 같습니다.
데스크톱이 아닌 파일을 스트리밍하고 싶다면("창"이라고 하면 "VLC"를 의미하는 것 같습니다) Livestream을 사용하여 작업할 수 있는 올바른 방향을 알려드릴 수 있습니다. 유스트림). 나는 실험을 통해 이것을 수행하는 방법을 서투르게 알아내고 있습니다. 환상적이지는 않지만 Livestream과 함께 작동합니다.
Justin.tv에는 VLC에서 해당 서비스로 스트리밍할 수 있는 스크립트도 있습니다.
http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API
답변4
먼저,appear.in은 아마도 어떤 번거로움도 없이 당신이 원하는 것을 할 것입니다(저는 관련이 없습니다):http://appear.in/
둘째, 최근 Linux 지원(!)을 추가한 OBS를 사용하여 Twitch 또는 기타 서비스로 스트리밍할 수 있습니다.https://obsproject.com/
OBS는 또한 Ubuntu에서 화면을 캡처하는 동안 시스템 사운드 및 오디오 입력을 다중화하는 훨씬 더 어려운 문제를 해결합니다( universe
지금까지 찾은 저장소의 어떤 것으로도 해결되지 않았습니다).
나는 멋진 unix-y 솔루션을 가지고 있지 않습니다. 그러나 그것은 현실 세계에서 나에게 도움이 되었습니다.