2016-07-28 3 views
1

winforms에 vlc player을 사용하고 있습니다. 그것의 일 벌금,하지만 문제는 그것의 더 빨리 노는 것입니다.
나는 10fps로 녹화 된 비디오를 가지고있다. 나는 vlcControl이 30fps에서 재생되고 있다고 생각합니다. 그래서 비디오가 더 빨리 재생됩니다. this을 추천했지만 도움이되지 않았습니다. 내가 set_play_back_speed 같은 기능을 찾을 수 없습니다 vlcControl1.Video에서
나는 vlcControl 자동으로 fps는 & 재생 알아낼 줄 알았는데.
내 Windows PC에 설치된 vlc 미디어 플레이어에서 동일한 비디오를 열면 적절한 속도로 재생됩니다. 이 문제를 해결하는 데 어떤 단서가 있습니까?

P .: 29.97fps로 녹화 된 비디오를 열면 winforms의 vlcControl이 적절한 속도로 재생합니다.vlc dot net (winforms)에서 재생 속도를 설정하십시오.

답변

3

음, Vlc.DotNet을 통해 비디오에 FPS를 설정하는 기능이 없으며 WinForms 또는 WPF 응용 프로그램을 사용하고 있는지 확신 할 수 없지만 가장 좋은 방법은 transpone 비디오에서와 같이 속도 설정을 사용하여 재생할 수 있습니다. .

당신이 초당 30 프레임을 가지고 만이 10fps 잘하려는 경우, 사용자가 설정을 시도 할 수 있습니다 (1.00 float 값의 기본입니다) vlcControl1.rate에서 찾았다 :

vlcControl1.rate = (int)(33/100); 

어느 다음 비디오 및 오디오를 줄일 것 30fps에서 10fps로 변합니다 (1.00 = 30fps 가정).

+0

! 이것에 대해 확실하지 않지만 기본적으로 VideoLAN에 비디오/오디오 동기화가 활성화되어 있습니다. 시작시에 VlcMediaPlayerOptions에서 모든 동기화를 비활성화하거나 일반 VLC를 열고 동기화를 비활성화 한 다음 VideoLAN 플레이어가있는 동일한 경로에서 libvlc를로드 할 수 있습니다 (일부 기능은 C#에서 플레이어를 열기 전에도 VideoLAN을 사용하여 직접 비활성화 할 수 있음) 암호). – ITK

+1

답변 해 주셔서 감사합니다. 내가 질문에 언급 한 것처럼, 나는 winforms에서 사용하고 있습니다. 나는 코드에서 비디오를 재생하기 전에 0.33으로 속도를 설정하려고 시도했다. 꽤 느려서 vlc가 33fps에서 재생되었다는 나의 가정이 잘못되었다. 그것은 Rate를 0.9로 설정했기 때문에 라이브 녹음보다 빠르지 않아서 10fps로 연주하고있었습니다. 다른 값을 사용하면 vlc가 더 빨리 또는 더 느리게 재생됩니다. 순간 나는 비디오에만 초점을 맞추기 때문에 나중에 오디오 동기화를 확인할 수 있습니다. 어떻게 fps vlc가 비디오를 재생하는지 결정하는 방법은 무엇입니까? 감사합니다. –

+0

제가 생각할 수있는 것은 비디오 카드 드라이버에 의한 vsync (수직 동기화)입니다. 모니터 재생 빈도에 따라 30,60,120 fps로 속도를 고정하는 60Hz 모니터의 절반과 같은 30fps 소리가납니다. 따라서 "vlcControl1.rate"설정없이 시도하고 비디오 카드 드라이버의 3D 설정에서 vsync를 비활성화/비활성화하십시오. – ITK