최근 Apple이 MacBook, iPhone 및 최근에 MacBook Pro product page에 사용했던 것과 유사한 기능을 구현하려고합니다.스크롤 (apple.com esque)에서 비디오 스크럽 - 엄청나게 큰 말투
MBP 제품 페이지를 확인하면 스크롤 할 때 화면과 터치 막대가 움직이는 것을 알 수 있습니다. 그것은 사실 비디오입니다.
비디오를 더듬는 것처럼 보이기 때문에이 문제를 채택하고 있습니다. 내 경우에는 4 개의 동영상이 있는데, 동영상 1 개로 잘라 내면 효과가 있지만 100 %가 아닙니다.
내가 더 잘 흐르게하기 위해 여기에 적용 할 수있는 방법/전술이 궁금합니다.
비디오 파일을 모양으로 넣으면 더 좋을까요? 비디오를 시리즈 이미지로 변환하는 것이 더 좋습니다.
Demo. - 그것은 스트리밍 앞으로 선형 재생을 위해 주로 설계
// select video element
var vid0 = document.getElementById('v0');
var vid1 = document.getElementById('v1');
var vid2 = document.getElementById('v2');
var vid3 = document.getElementById('v3');
var windowheight = $(window).height()-20;
var scrollpos = window.pageYOffset/400;
var targetscrollpos = scrollpos;
var accel = 0;
// ---- Values you can tweak: ----
var accelamount = 0.1; //How fast the video will try to catch up with the target position. 1 = instantaneous, 0 = do nothing.
// pause video on load
vid0.pause();
vid1.pause();
vid2.pause();
vid3.pause();
window.onscroll = function(){
targetscrollpos = window.pageYOffset/400;
};
setInterval(function(){
scrollpos += (targetscrollpos - scrollpos)*accelamount;
//update video playback
vid0.currentTime = scrollpos;
vid0.pause();
vid1.currentTime = scrollpos;
vid1.pause();
vid2.currentTime = scrollpos;
vid2.pause();
vid3.currentTime = scrollpos;
vid3.pause();
}, 40);
매우 유익한 답변입니다. 감사합니다. 나는 npm을 통해 약간의 스크립트를 발견했다. 또한 동영상을 얼룩으로로드합니다. 키 프레임 프레임 거리를 '1'로 설정하면 스크럽을 할 수있게됩니다. 그러나 파일 크기가 약간 증가합니다. 나는 팬들이 많이 속도를 올릴 것으로 보았다. (사파리는 괜찮아 크롬과 FX는 그렇지 않다.) 내가 만든 데모 (http://output.jsbin.com/lewizuyamo/1)를 보면 2 개의 비디오 만 있고, 최종 제품의 비디오는 5-6 개의 비디오 일 가능성이 높습니다. 이를 염두에두고 팬 속도를 높이기 위해 최적화하는 것이 가능하다고 생각하십니까? – INT
지금은 JPEG 스틸에 기대고 있습니다 (너무 큰 이미지는 iOS에서 Safari를 충돌시킬 수 있으므로 스프라이트는 실행 가능하지 않다고 생각하지 마십시오). 그러나 그것은 파일 크기에 대한 프리미엄과 함께 제공됩니다. 나는 CPU 부하 및 팬 속도에 관한 비디오보다 성능이 더 우수 할 지 궁금합니다. – INT
@INT 비디오 프로세싱이이 많은 요소로 상당히 무거워서 의심 스럽습니다.). 로드를 줄이기 위해 비디오에 대한 모든 종류의 최적화 작업을 수행 할 수 있습니다. ([이 답변]에서 몇 가지 팁을주었습니다 (https://stackoverflow.com/questions/40359750/html5-video-and-canvas-cpu-optimization/40398424 # 40398424) - 가장 관련성이 높은 부분은 마지막 두 부분입니다.Safari는 아마도 hw 디코딩을 활용하기 위해 서브 시스템과 잘 통합 될 것입니다. 크롬은 ffmpeg에 의존합니다. BLOB로로드하면 좋고, 더 많은 메모리를 소비하지만 즉시 사용할 수 있습니다. [...] – K3N