ใช้v4l2loopback กับ mplayer
- ดาวน์โหลดได้,
- รวบรวมมัน (
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 สามารถเล่น webstreams ใด ๆ , ไฟล์วิดีโอทุกประเภท, แม้แต่จาก 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 ของคุณเป็นอย่างไร