Sử dụng v4l2loopback với mplayer .
- Tải về nó
- biên dịch nó (
makevà su -c 'make install'),
- tải mô-đun với
su -c 'modprobe v4l2loopback',
sau đó thay đổi một dòng trong tệp examples/yuv4mpeg_to_v4l2.ccủa thư mục nguồn v4l2loopback từ
v.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
đến
v.fmt.pix.pixelformat = V4L2_PIX_FMT_YVU420;
và làm maketrong thư mục này.
Sau đó chạy nó từ examplesthư mục như thế này:
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
nơi bạn thay thế movie.mp4bằng tên của tệp video của bạn. Và thay thế /dev/video0bằng thiết bị loopback của bạn.
MPlayer có thể phát bất kỳ luồng web nào, tất cả các loại tệp video, thậm chí từ stdin! Tôi vừa thử nó với một tập tin từ http://www.tagesschau.de là một trang web tin tức của Đức.
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
Thay vì $ TS, bạn có thể đặt một -(viết tắt của stdin). Và trước mplayer, lệnh ffmpeg của bạn chuyển hướng đầu ra của nó thành thiết bị xuất chuẩn. Vì vậy, một cái gì đó như:
./yuv4mpeg_to_v4l2 < /tmp/pipe &
fmpeg -someOptions ... -o - | mplayer - -vf scale=480:360 -vo yuv4mpeg:file=/tmp/pipe
Không kiểm tra cái cuối cùng, vì bạn không cho biết lệnh ffmpeg của bạn trông như thế nào.