2014-06-13 1 views
1

와 함께 버튼 클릭시 녹화 스트림을 시작합니다. ip 카메라에서 스트림 비디오를 수신했습니다 ... 나는 이미 사용할 수있는 lib를 사용합니다 .. lib 사이트 VideoLan DotNet for WinForm , WPF & 실버 5VLC 도트 그물 라이브러리

내가이 수행 비디오 STRAM하기 위해 :

string path = "rtsp://****:****@192.168.5.223/profile2/media.smp"; 
LocationMedia media = new LocationMedia(path); 
vlcControl1.Media = media; 
vlcControl1.Play(); 

내가 지금 원하는 것은 버튼 클릭에 스트림을 파일로 저장하는 것입니다, 내 말은, 비디오가 재생됩니다 , 그리고 나서 비디오를 녹화하기 위해 버튼을 누르십시오.

어떻게해야합니까? 내가 libVlc 그냥 발견을 사용하고 비디오가 이미 재생중인 경우

string path = .... 
LocationMedia media = new LocationMedia(path);  media.AddOption(":sout=#transcode{vcodec=theo,vb=800,scale=1,acodec=flac,ab=128,channels=2,samplerate=44100}:std{access=file,mux=ogg,dst=C:\\Users\\hsilva\\Desktop\\123.mp4}"); 
vlcControl1.Media = media; 
vlcControl1.Play(); 

그래서 내가 어떻게 옵션을 추가 할 수 있습니다

내가 저장하려면이 작업을 수행 할 수 있습니다 비디오를 시작

... ...

+0

해결 했습니까? – Gavin

+0

그래서, 내가 뭘했는지, 재생중인 비디오를 중지하고 sout option.but와 함께 새로운 비디오를 시작하는 것은 현재이 코드가 완료된 곳에서 전체 코드를 찾으려고하고있다가 여기에 게시 할 것입니다. –

+0

많은 감사. 미리보기가 렌더링되도록 #duplicate 명령으로 멈추었다가 시작하는 동일한 프로세스를 생각해 냈습니다. 다소 어색하지만 좋은 것보다 낫다. – Gavin

답변

0

귀하의 질의 응답에. 비슷한 방법을 사용했지만 record (start) 버튼을 클릭했을 때 time(libvlc_media_player_get_time(IntPtr p_mi))을 움켜 잡았습니다. 그런 다음 시작 시간을 time(libvlc_media_player_set_time(IntPtr p_mi, Int64 newTime))으로 사용하여 재생을 재개하고 녹음을 시작했습니다.

내 구현에서 기록 단추를 다시 클릭하면 녹음이 중지되고 시간을 가져 와서 설정 한 다음 화면에서 비디오 재생을 다시 시작합니다.

이 접근법의 단점은 재생 재개시 눈에 띄는 지연이며, 1 초 정도입니다. 나는 이것이 지정된 시간을 찾아야하기 때문인 것으로 의심된다.

나는 또한 libvlc_media_player_record_[start|stop](IntPtr p_mi,...) API에 대한 참조를 찾았지만 공식은 없습니다. 나는 이것을 성취 할 수있는 더 좋은 방법을 찾았는지, 어떻게했는지 알아내는 데 관심이있다.