Tôi cũng đã thử cùng với VLC và không bao giờ có thể nhận được độ trễ dưới 3 giây. FFmpeg đã làm điều kỳ diệu và cuối cùng cung cấp một độ trễ dưới 1 giây.
mpeg2video và UPD cung cấp kết quả tốt nhất, độ trễ RTP cảm thấy hơi tồi tệ hơn nhưng rất gần. Việc chuyển sang x264 cải thiện chất lượng để trao đổi độ trễ nhiều hơn một chút, nhưng điều đó thực sự phụ thuộc vào bao nhiêu nội dung động và tốc độ của CPU. Tôi chỉ có x264 làm việc với UDP, nhưng phải có một cách để làm điều đó với RTP.
Tôi không chắc nó có khả thi để chơi hay không. Các máy chủ sẽ được theo một khối lượng công việc nặng và độ trễ sẽ được chú ý - ít nhất là trên Linux, không biết về các cửa sổ.
Trên Linux thử một trong các lệnh sau:
$ ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec mpeg2video -b:v 8000 -f rtp rtp://192.168.0.10:1234
hoặc
$ ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec libx264 -preset ultrafast -tune zerolatency -crf 18 -f mpegts udp://192.168.0.10:1234
Adjust for độ phân giải màn hình (-s <your resolution>
), tốc độ làm tươi (-r <fps>
), băng thông (-b:v <bits/s>
), chất lượng (-crf 18
hoặc -qp 18
, càng thấp càng tốt) và nhắm mục tiêu ip: port.
Nếu đang chạy Windows, hãy sử dụng dshow
thay cho x11grab
.
Xem bằng cách sử dụng ffplay udp://192.168.0.10:1234
hoặc ffplay sdp://192.168.0.10:1234
.
Hãy nhớ rằng không có tùy chọn nào trong số những tùy chọn đó phát trực tuyến. Tôi không thể nhận được độ trễ thấp như vậy khi phát trực tuyến âm thanh. Nó có thể là doable, tôi chỉ không tìm ra cách.
Ứng dụng khách nhạy nhất là ffplay
, VLC
giới thiệu độ trễ quá nhiều ngay cả khi bộ nhớ cache mạng được đặt thành 0 - với bộ nhớ cache thực sự trở nên tệ hơn vì nó cố gắng 'đồng bộ hóa' luồng quá thường xuyên.
Nếu bạn cần thêm chi tiết, tôi đã thực hiện một số post về các phát hiện của tôi. Hy vọng nó giúp. Tôi đánh giá cao bất kỳ phản hồi nào.^_^
FFmpeg cũng có một số cài đặt mã hóa x264 như "zerolatency -tune" có thể hữu ích ở đây: http://trac.ffmpeg.org/wiki/StreamingGuide#Latency – rogerdpack
Tôi đã truy cập trang web của bạn trước khi chạy qua bài báo. Đối với ý kiến của tôi vlc và ffplay có độ trễ gần như tương tự. – user1767754
Tôi đã cố gắng chuyển tham số độ phân giải như dưới URL nhưng dường như nó không hoạt động, ý tôi là video mp4 đã ghi lại rtsp vẫn ở độ phân giải cao ngay cả khi tôi đã vượt qua 320x240 :( "-t 30 -i \" rtsp : //xxx.xxxxxx.com/2 \ "-s 320x240 -acodec copy -vcodec copy -to" –