Chỉnh sửa
Tôi đã ngừng sử dụng VLC và chuyển sang GMax FLV Encoder. Nó làm một công việc tốt hơn IMO.VLC máy tính để bàn phát trực tuyến
bài gốc
Tôi gửi máy tính để bàn của tôi (màn hình) như một dòng video H264 sang một máy mà lưu nó vào một tập tin bằng cách sử dụng dòng lệnh follwoing:
Người gửi của các dòng:
vlc -I dummy
--sout='#transcode{vcodec=h264,vb=512,scale=0.5}
:rtp{mux=ts,dst=192.168.0.1,port=4444}'
Receiver của con suối:
vlc -I rc
rtp://@:4444
--sout='#std{access=file,mux=ps,dst=/home/user/output.mp4}'
--ipv4
này hoạt động, nhưng t đây là một vài vấn đề:
- Không thể phát tệp với hầu hết người chơi.
- VLC có thể phát lại tệp nhưng với một số điều kỳ lạ:
- => mất khoảng 10 giây trước khi phát lại thực sự bắt đầu.
- => tìm kiếm không hoạt động.
Ai đó có thể chỉ cho tôi đúng hướng về cách khắc phục các sự cố này không?
EDIT: Tôi đã thực hiện một chút tiến bộ.
Độ trễ ban đầu khi phát lại là do trình phát đang chờ khung hình chính. Bằng cách buộc người gửi luồng đó tạo khung hình mới sau mỗi 4 giây, tôi có thể giảm độ trễ:
:screen-fps=10
--sout='#transcode{vcodec=h264,venc=x264{keyint=40},vb=512,scale=0.5}
:rtp{mux=ts,dst=192.168.0.1,port=4444}'
Vấn đề tìm kiếm vẫn chưa được giải quyết nhưng tôi hiểu rõ hơn một chút. Luồng RTP được lưu dưới dạng tệp ở định dạng phát trực tuyến gốc, thường không thể phát dưới dạng tệp video thông thường. VLC quản lý để chơi tập tin này, nhưng hầu hết người chơi khác không. Vì vậy, tôi cần phải chuyển đổi nó thành một tập tin video thông thường. Tôi hiện đang điều tra xem tôi có thể làm điều này với ffmpeg không nếu tôi cung cấp tệp SDP cho luồng đã ghi.
Tất cả trợ giúp đều được chào đón!
tôi không có đầu mối làm thế nào để trả lời câu hỏi này, nhưng có bạn đã cố gắng sử dụng một trình biên tập video và lưu file dưới dạng khác nhau định dạng? – Mottie
Có, với ffmpeg tôi đã thử sửa chữa, nhưng có vẻ như giảm toàn bộ đầu ra thành một vài khung hình, vì vậy tôi đã kết thúc bằng một video thứ hai. – StackedCrooked
Chương trình này có liên quan như thế nào? –