VLC Desktop Streaming
редактировать
Я перестал использовать VLC и переключился наGMax FLV Encoder, Это делает работу намного лучше IMO.
Оригинальный пост
Я отправляю свой рабочий стол (экран) в виде видеопотока H264 на другую машину, которая сохраняет его в файл, используя следующие командные строки:
Отправитель потока:
vlc -I dummy
--sout='#transcode{vcodec=h264,vb=512,scale=0.5}
:rtp{mux=ts,dst=192.168.0.1,port=4444}'
Приемник потока:
vlc -I rc
rtp://@:4444
--sout='#std{access=file,mux=ps,dst=/home/user/output.mp4}'
--ipv4
Это работает, но есть несколько проблем:
Файл не воспроизводится большинством игроков.VLC может воспроизводить файл, но с некоторыми странностями:=> Перед началом воспроизведения требуется около 10 секунд.=> Поиск не работает.Может кто-нибудь указать мне правильное направление, как исправить эти проблемы?
РЕДАКТИРОВАТЬЯ немного продвинулся
Начальная задержка воспроизведения заключается в том, что проигрыватель ожидает ключевой кадр. Заставив отправителя потока создавать новый ключевой кадр каждые 4 секунды, я мог уменьшить задержку:
: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}'
Однако проблема поиска не решена, но я понимаю ее немного лучше. Поток RTP сохраняется в виде файла в исходном формате потоковой передачи, который обычно не воспроизводится как обычный видеофайл. VLC удается воспроизвести этот файл, но большинство других игроков этого не делают. Поэтому мне нужно преобразовать его в обычный видеофайл. В настоящее время я изучаю, могу ли я сделать это с помощью ffmpeg, если я предоставлю ему файл SDP для записанного потока.
Вся помощь приветствуется!