디아블로 3 라이센스 키를 다운로드하세요. 디아블로 III 베타 라이센스 키는 어떻게 얻었나요?

막강한 악마인 디아블로, 메피스토, 바알이 이끄는 언데드 무리가 성역을 휩쓸고 간 지 20년이 지났지만, 고대의 악에 맞서 싸운 이들은 아직도 그 당시의 끔찍한 사건을 기억하고 있습니다... 그 지식을 찾아 새로운 악마의 화신을 극복하는 데 도움을 준 데커드 케인은 트리스트럼 대성당의 폐허로 돌아왔습니다. 그리고 묵시록의 전령이 하늘에서 내려와 화염에 휩싸였습니다. 디아블로가 한때 세상에 들어온 바로 그 장소에 타격이 가해졌습니다. 천상의 불꽃이 고대의 악을 깨웠습니다. 시간이 다가왔습니다! 성역의 영웅들은 지하 세계의 맹렬한 세력으로부터 필멸의 세계를 지키기 위해 다시 한 번 일어나야 합니다.

주목! 당신은 코드(디스크가 아님)를 구매하고 있습니다! 활성화 후 게임이 다운로드됩니다!

디아블로 III 스탠다드 에디션(RU) 코드를 등록하는 방법:

1) eu.battle.net/ru/에 접속해 회원가입을 하세요. (배틀넷 계정이 있다면 로그인하세요.)
2) 로그인 후 '게임 키 연결' 섹션(eu.battle.net/account/management/claim-code.html)을 선택하고 구매한 디아블로 III 스탠다드 에디션(RU) 코드를 입력하세요.

디아블로 III 게스트 패스 코드(RU)를 등록하는 방법:

1) http://www.diablo3.com/guest에 접속하여 회원가입을 합니다. (배틀넷 계정이 있는 경우 로그인)
2) 받은 게스트 키를 입력하세요
3) 게임을 무료로 다운로드하세요. (게스트 버전을 사용하면 1막에서 해골 왕과의 전투까지 디아블로 III를 플레이할 수 있습니다.)

WoW 게스트 패스(RU) 코드를 사용하는 방법:

1) http://www.warcraft.com/guest로 이동하여 받은 게스트 키를 입력하세요.
2) 게임의 무료 평가판을 다운로드하세요
3) 월드 오브 워크래프트를 레벨 20까지 무료로 플레이하세요

이용 가능 여부: 다수, 정기적으로 공식적으로(SoftClub에서). 결제 후 즉시 활성화 코드를 받게 됩니다! D3 및 WoW의 메인 코드와 게스트 코드가 포함되어 있습니다(모두 "디스크" 쥬얼 에디션에서 재인쇄되었습니다).

리뷰

2

고객으로부터 피드백을 받지 못했습니다.

저작권 및 재산권 침해에 대응하고 해당 위반에 대한 공모 사이트 관리에 대한 근거 없는 비난을 배제하기 위해 Plati 거래 플랫폼(http://www.plati.market) 관리팀은 다음과 같이 항소합니다. 요청이 있는 경우 - Plati 거래 플랫폼에서 위반 사항이 발견된 경우 즉시 당사에 알려주십시오. [이메일 보호됨]그러한 위반 사실에 대해 알리고 귀하의 저작권 또는 소유권을 확인하는 신뢰할 수 있는 정보를 당사에 제공하십시오. 서신에는 연락처(성명, 전화번호)를 반드시 기재하시기 바랍니다.

이러한 권리 침해에 대한 근거 없고 고의적인 허위 보고를 배제하기 위해 행정부는 귀하로부터 귀하의 저작권 또는 소유권을 확인하는 문서 사본과 함께 서면 위반 진술서를 받은 후에만 Plati 거래 플랫폼에서 서비스 제공을 거부합니다. 주소 : 123007, Moscow, Maly Kaluzhsky 레인. 4, 건물 3, 변호사 사무실 "AKAR No. 380".

귀하의 권리 침해와 부도덕한 판매자의 행동을 차단해야 할 필요성에 신속하게 대응하기 위해 Plati는 판매자의 행동을 차단하는 기반이 될 인증된 전보를 보내달라고 요청합니다. 이 전보에는 다음 사항이 포함되어야 합니다. : 침해된 권리 유형, 귀하의 권리 확인 및 귀하의 연락처 정보(조직상 - 개인의 법적 형태, 이름). 저작권 또는 소유권을 확인하는 서면 문서를 법률 사무소에 제공하지 않으면 15일 후에 차단이 해제됩니다.

키 키퍼에서 드롭

뼈의 열쇠

우리는 Act I으로 이동하여 Deadly Fields로 순간 이동합니다. 이 위치에는 불쾌한 뿔 달린 생물이나 Khazra의 일반 사람들이 살고 있습니다. 여기서 필요한 첫 번째 보스 인 Odig를 찾아야합니다. 그는 플레이어를 먼 거리로 밀어내는 다소 불쾌한 주문을 사용한 다음 속도를 늦추고 움직이지 못하게 만들고 불 덩어리와 창을 던지기 때문에 그를 알아보는 것이 어렵지 않을 것입니다. 이는 근접 클래스에 특히 큰 위험을 초래할 것입니다.

대식

다음 Act II로 향하고 Dalgur Oasis로 순간 이동합니다. 두 번째 열쇠 보관인인 소카르가 이곳에서 여러분을 기다리고 있을 것입니다. 발사체 속도를 늦추는 자체 아우라에 의해 제공되기 때문에 다른 방법으로 찾을 수 있습니다. 화면 가장자리를 주의 깊게 관찰하여 분위기를 알아보세요. 그러면 절대 잘못될 일이 없을 것입니다.

전쟁

이제 액트 3으로 가보겠습니다. Stone Fort의 영토에서는 또 다른 열쇠 보관인 Za'Rit을 만날 것입니다. 그는 상당한 양의 체력을 소모하면서 속도를 크게 늦출 수 있는 불쾌한 얼음 기술을 사용합니다. 또한 전투 중에 순간이동합니다. 그러나이 "열쇠지기"를 찾는 것은 이전 것보다 훨씬 쉽습니다. 이 지역은 복도 스타일로 만들어져 오랫동안 그를 찾을 필요가 없기 때문입니다.

사악한

열쇠의 마지막 보관인은 액트 4, 즉 Silver Spire 지역의 첫 번째 레벨에 있습니다. 그의 부모는 그에게 Nekarat라는 별명을 붙였습니다. 그는 그를 먼 거리까지 던질 수 있고, 새장에 가두고 디버프를 걸어 그가 받는 치유량을 줄일 수 있습니다. 이전과 마찬가지로 Loka도 작으며 검색에 많은 시간이 걸리지 않습니다.

2012년 3월 29일 01:17

디아블로 III 베타의 열쇠를 얻은 방법

  • 웹사이트 개발,
  • 프로그램 작성

YouTube 동영상에서 디스이즈굿최근 디아블로 III 베타의 키가 등장하기 시작했습니다. 7분 분량의 영상에서는 열쇠가 1초간 보여지며, 먼저 활성화한 사람이 승리합니다. 스틸 프레임에서 키는 다음과 같습니다.

당신도 나와 같은 생각을 하고 있나요?


총 10개의 열쇠가 있습니다.

열쇠 1
나는 첫 번째 열쇠에 대해 몰랐고 아마도 아무도 몰랐을 것입니다. 어떤 사람들은 운이 좋다.

열쇠 2
두 번째 비디오의 경우, 10초마다 추가된 비디오로 페이지를 업데이트하고, 새 비디오가 나타나면 경고 형태의 모달 창이 이를 보고하는 가장 간단한 봇이 준비되었습니다. 4시간 후에 YouTube는 봇을 감지하고 그에게 recaptcha를 입력하도록 요청한 다음 매 시간마다 그에게 입력하도록 요청하는 것으로 나타났습니다. 매우 불편하지만 시간을 낭비하고 일반적인 방식으로 쓰고 싶지 않았습니다. 예를 들어 적어도 녹색 글자와 같이 두 번째 키가 어떻게 든 다르게 나타날 것으로 예상했기 때문입니다. 두 번째 키를 놓쳤는데 같은 회색 숫자와 문자, 같은 글꼴, 같은 크기, 같은 흰색 배경, 심지어 같은 세 줄의 크기를 보고 일반 봇을 만들기로 결정했습니다.

열쇠 3
세 번째 영상의 경우 봇은 12시간 동안 5초마다 한 번씩 스캔을 허용하는 요청 수 할당량인 YouTube API를 사용했습니다.

알고리즘은 간단했습니다.

그래서 새 비디오 출시를 알리는 경고 팝업이 나타났습니다. 나는 Battle.net에 로그인했습니다. 10초 후에 비디오가 다운로드되었고, 10초 후에 일련 번호가 포함된 스크린샷이 나타났습니다.


입력했는데... 이미 사용된 것으로 확인되었습니다. 오류 분석에 따르면 YouTube API를 통한 데이터는 최대 5분의 지연으로 업데이트되는 것으로 나타났습니다! 봇이 새 비디오를 발견했을 때는 이미 너무 늦었습니다. F5 키를 누른 다른 봇이나 사용자 중 일부는 운이 좋았습니다.

열쇠 4
네 번째 비디오에서는 봇이 개선되었습니다. 이제 봇은 5초마다 gdata를 스캔하는 약 100개의 프록시 서버(각 프록시 서버당 1개의 스레드)를 사용합니다. 테스트에 따르면 약 20개의 프록시가 새 비디오의 공개를 즉시 보고하고 나머지는 1분 이내에 따라잡는 것으로 나타났습니다. 정말 훌륭했습니다. gdata와 달리 직접 링크는 모든 IP에 대해 즉시 표시되므로 여기에서는 프록시 없이 봇이 단순히 20개의 스트림으로 비디오를 다운로드합니다(1000개의 스트림에서도 작동하며 YouTube에서 허용함). 다운로드 속도가 빨라졌습니다. 스캔 알고리즘이 개선되었습니다. 봇은 먼저 4개의 스레드에서 비디오의 두 번째 부분을 스캔한 다음(이전의 모든 비디오에서는 비디오 끝에 직렬 키가 나타남) 4개의 스레드에서 첫 번째 부분을 스캔합니다. 신뢰성을 위해 스캐닝 단계를 500ms로 줄였고, 다른 매개변수도 약간 약화되었습니다.

그래서 새 영상 공개를 알리는 알림이 떴습니다. Battle.net에 로그인하기 전에 비디오가 이미 다운로드되었고(10초) 일련번호가 포함된 스크린샷이 나타났습니다.

그의 등장 가능성을 두 줄로 고려한 것이 기뻤습니다. 악수하면서 어떻게든 쓰고 활성화 시켜봤습니다! 모두 약 20초가 걸렸습니다. 스캐닝은 매우 운이 좋았습니다. 전체 스캔이 30초 동안 지속되었음에도 불구하고 알고리즘은 거의 즉시 일련 번호를 표시했습니다. 이번 영상에서는 키가 2개 연속으로 나오는데, 저는 두 번째 키를 입력했습니다. 먼저 활성화하신 분 축하드립니다!

열쇠가 5개 더 남았습니다
다운로드 시작과 함께 스캔을 실행하면 알고리즘이 더 복잡해지지만 이득은 10초가 됩니다. 또한 일련 번호를 인식하여 자동으로 Battle.net에 입력할 수도 있습니다. 그러면 5초 안에도 키를 입력할 수 있습니다.

모든 것은 HttpComponents(http 프로토콜) 및 VLCj(비디오 처리)를 사용하여 Java로 작성되었습니다.

추신 디아블로 III는 멋지다

업데이트
봇 자체를 작성하는 것이 흥미로웠기 때문에 나는 20시간을 오락에 소비한 시간으로 간주하고, 키 자체에 드는 비용보다 훨씬 더 많은 돈을 벌 수 있는 20시간으로 간주하지 않습니다. 여가 시간에는 일보다는 휴식을 취하거나 새로운 것을 공부하는데, 여기에는 즐겁고 유용한 것이 있습니다. 아직 게임이 끝나지 않았습니다.

연산
나는 두 가지 이유로 일련 번호를 결정하는 알고리즘을 의도적으로 즉시 표시하지 않았습니다. 절대적으로 정확한 알고리즘을 배운 ThisIsHorosho의 작성자는 빠르게 키를 인식할 수 없게 만들 것이며, 저는 봇을 작성하는 사람들에게도 해를 끼치게 될 것입니다. 그런 사람 없다는 건 인정하지만 댓글을 보면 3분만에 일련번호를 입력하는데 정말 기다리면서 F5를 누르는 건지...

뭐, 알고리즘에 대한 질문이 많으니까... 가장 중요한 것은 알고리즘이 매우 빨라야 한다는 것입니다. 주요 아이디어는 일련번호가 포함된 스크린샷에서 바로 확인할 수 있습니다.

  1. 프레임에서 사진을 찍어 640x320 크기로 저장합니다. VLCj를 사용하면 비디오의 해상도가 다르더라도 모든 해상도로 사진을 저장할 수 있습니다. 텍스트 색상에 가까운 모든 점은 검은색으로 표시되고 다른 모든 점은 흰색으로 표시됩니다. 결과적으로 우리는 흑백 사진을 얻습니다. 이 기사에는 그러한 사진 몇 개가 포함되어 있습니다.
  2. 각 스크린샷에 대해 흰색 점과 검은색 점의 통계를 계산합니다. 흰색 점 수가 92% 이상인 것을 배경으로 선언합니다. 테스트에서는 94%로 충분했지만 이는 여유가 있습니다. 배경이 있는 프레임에서 일련번호를 찾습니다.
  3. 연재물은 중앙에 더 가깝게 나타나지만 가장자리에서는 나타나지 않기 때문에 프레임 가장자리에서 30픽셀을 후퇴합니다. 나머지 필드를 20x20 정사각형으로 나누고 각 정사각형에서 검은 점 수를 셉니다.
  4. 우리는 검은 점 수가 10%에서 60% 사이인 사각형을 글자가 있는 사각형으로 선언합니다. 이는 글자가 사각형의 절반 정도만 들어갈 수 있고 약간의 여백이 있을 수 있다는 사실을 고려한 것입니다.
  5. 가로로 문자가 있는 6개 이상의 사각형과 세로로 3개의 사각형이 연속적으로 연속된 시퀀스가 ​​있는 프레임은 일련 번호가 있는 프레임으로 선언됩니다. 폴더에 저장합니다.

결과적으로 일련 번호와 유사한 텍스트가 있는 그림만 나타납니다.

실제로는 그 수가 많지 않으므로 필요한 것을 찾는 것이 어렵지 않습니다.

VLCj로 작업하기
VLCj로 작업하는 것은 매우 간단합니다. 먼저 www.capricasoftware.co.uk/vlcj/tutorial1.php 문서를 읽은 다음 MediaPlayer 클래스를 조금 사용해 보았지만 다소 버그가 있었습니다. 일반적으로 LibVlc 라이브러리에서 직접 함수를 호출하기로 결정했습니다. 더 빠르고 버그도 없습니다.

먼저 라이브러리를 생성합니다
LibVlc libvlc = LibVlcFactory.factory().create();

그런 다음 8개의 분석기 스레드(실행 가능 유형) 배열(비디오 시간의 각 1/8)을 생성하고 이를 다음 순서로 Executors.newFixedThreadPool(4)에 전달합니다: 4, 5, 6, 7, 0, 1, 2, 3. 그. 비디오의 두 번째 부분이 먼저 스캔된 다음 첫 번째 부분이 스캔됩니다. 각 분석기 스레드에는 다음 코드가 포함되어 있습니다.

System.out.println("실행 섹션 " + num); libvlc_media_player_t p_mi = null; libvlc_media_t 미디어 = null; try ( // 준비 //libvlc_instance_t 인스턴스 = libvlc.libvlc_new(0, new String); libvlc_instance_t 인스턴스 = libvlc.libvlc_new(2, new String("--vout", "dummy")); p_mi = libvlc.libvlc_media_player_new( 인스턴스); libvlc.libvlc_audio_toggle_mute (p_mi); media = libvlc.libvlc_media_new_path (instance, filename); libvlc.libvlc_media_player_set_media (p_mi, media); libvlc.libvlc_media_pher _ply (p_mi); msplayerwait); libvlc.libvlc _media_player_pause (p_mi ) ; // 스냅샷 시작 int block = blockFrom; for (long msTime = msFrom; msTime<= msTo; msTime += msInBlock, block++) { String path = snapshotPath + File.separator + "snap-" + String.format("%03d.png", block); libvlc.libvlc_media_player_set_time(p_mi, msTime); int r = libvlc.libvlc_video_take_snapshot(p_mi, 0, path, picWidth, picHeight); if (r != 0) System.out.println("SNAPSHOT FAILED: block=" + block + ", returnCode=" + r); else analyzeImage(path); } } finally { if (p_mi != null) libvlc.libvlc_media_player_stop(p_mi); if (media != null) libvlc.libvlc_media_release(media); if (p_mi != null) libvlc.libvlc_media_player_release(p_mi); System.out.println("Close section " + num); }

analyzeImage 함수는 키가 스크린샷에 있는지 여부를 확인하고, 있으면 특수 폴더에 저장합니다.

YouTube 동영상에서 디스이즈굿최근 디아블로 III 베타의 키가 등장하기 시작했습니다. 7분 분량의 영상에서는 열쇠가 1초간 보여지며, 먼저 활성화한 사람이 승리합니다. 스틸 프레임에서 키는 다음과 같습니다.

당신도 나와 같은 생각을 하고 있나요?


총 10개의 열쇠가 있습니다.

열쇠 1
나는 첫 번째 열쇠에 대해 몰랐고 아마도 아무도 몰랐을 것입니다. 어떤 사람들은 운이 좋다.

열쇠 2
두 번째 비디오의 경우, 10초마다 추가된 비디오로 페이지를 업데이트하고, 새 비디오가 나타나면 경고 형태의 모달 창이 이를 보고하는 가장 간단한 봇이 준비되었습니다. 4시간 후에 YouTube는 봇을 감지하고 그에게 recaptcha를 입력하도록 요청한 다음 매 시간마다 그에게 입력하도록 요청하는 것으로 나타났습니다. 매우 불편하지만 시간을 낭비하고 일반적인 방식으로 쓰고 싶지 않았습니다. 예를 들어 적어도 녹색 글자와 같이 두 번째 키가 어떻게 든 다르게 나타날 것으로 예상했기 때문입니다. 두 번째 키를 놓쳤는데 같은 회색 숫자와 문자, 같은 글꼴, 같은 크기, 같은 흰색 배경, 심지어 같은 세 줄의 크기를 보고 일반 봇을 만들기로 결정했습니다.

열쇠 3
세 번째 영상의 경우 봇은 12시간 동안 5초마다 한 번씩 스캔을 허용하는 요청 수 할당량인 YouTube API를 사용했습니다.

알고리즘은 간단했습니다.

그래서 새 비디오 출시를 알리는 경고 팝업이 나타났습니다. 나는 Battle.net에 로그인했습니다. 10초 후에 비디오가 다운로드되었고, 10초 후에 일련 번호가 포함된 스크린샷이 나타났습니다.


입력했는데... 이미 사용된 것으로 확인되었습니다. 오류 분석에 따르면 YouTube API를 통한 데이터는 최대 5분의 지연으로 업데이트되는 것으로 나타났습니다! 봇이 새 비디오를 발견했을 때는 이미 너무 늦었습니다. F5 키를 누른 다른 봇이나 사용자 중 일부는 운이 좋았습니다.

열쇠 4
네 번째 비디오에서는 봇이 개선되었습니다. 이제 봇은 5초마다 gdata를 스캔하는 약 100개의 프록시 서버(각 프록시 서버당 1개의 스레드)를 사용합니다. 테스트에 따르면 약 20개의 프록시가 새 비디오의 공개를 즉시 보고하고 나머지는 1분 이내에 따라잡는 것으로 나타났습니다. 정말 훌륭했습니다. gdata와 달리 직접 링크는 모든 IP에 대해 즉시 표시되므로 여기에서는 프록시 없이 봇이 단순히 20개의 스트림으로 비디오를 다운로드합니다(1000개의 스트림에서도 작동하며 YouTube에서 허용함). 다운로드 속도가 빨라졌습니다. 스캔 알고리즘이 개선되었습니다. 봇은 먼저 4개의 스레드에서 비디오의 두 번째 부분을 스캔한 다음(이전의 모든 비디오에서는 비디오 끝에 직렬 키가 나타남) 4개의 스레드에서 첫 번째 부분을 스캔합니다. 신뢰성을 위해 스캐닝 단계를 500ms로 줄였고, 다른 매개변수도 약간 약화되었습니다.

그래서 새 영상 공개를 알리는 알림이 떴습니다. Battle.net에 로그인하기 전에 비디오가 이미 다운로드되었고(10초) 일련번호가 포함된 스크린샷이 나타났습니다.

그의 등장 가능성을 두 줄로 고려한 것이 기뻤습니다. 악수하면서 어떻게든 쓰고 활성화 시켜봤습니다! 모두 약 20초가 걸렸습니다. 스캐닝은 매우 운이 좋았습니다. 전체 스캔이 30초 동안 지속되었음에도 불구하고 알고리즘은 거의 즉시 일련 번호를 표시했습니다. 이번 영상에서는 키가 2개 연속으로 나오는데, 저는 두 번째 키를 입력했습니다. 먼저 활성화하신 분 축하드립니다!

열쇠가 5개 더 남았습니다
다운로드 시작과 함께 스캔을 실행하면 알고리즘이 더 복잡해지지만 이득은 10초가 됩니다. 또한 일련 번호를 인식하여 자동으로 Battle.net에 입력할 수도 있습니다. 그러면 5초 안에도 키를 입력할 수 있습니다.

모든 것은 HttpComponents(http 프로토콜) 및 VLCj(비디오 처리)를 사용하여 Java로 작성되었습니다.

추신 디아블로 III는 멋지다

업데이트
봇 자체를 작성하는 것이 흥미로웠기 때문에 나는 20시간을 오락에 소비한 시간으로 간주하고, 키 자체에 드는 비용보다 훨씬 더 많은 돈을 벌 수 있는 20시간으로 간주하지 않습니다. 여가 시간에는 일보다는 휴식을 취하거나 새로운 것을 공부하는데, 여기에는 즐겁고 유용한 것이 있습니다. 아직 게임이 끝나지 않았습니다.

연산
나는 두 가지 이유로 일련 번호를 결정하는 알고리즘을 의도적으로 즉시 표시하지 않았습니다. 절대적으로 정확한 알고리즘을 배운 ThisIsHorosho의 작성자는 빠르게 키를 인식할 수 없게 만들 것이며, 저는 봇을 작성하는 사람들에게도 해를 끼치게 될 것입니다. 그런 사람 없다는 건 인정하지만 댓글을 보면 3분만에 일련번호를 입력하는데 정말 기다리면서 F5를 누르는 건지...

뭐, 알고리즘에 대한 질문이 많으니까... 가장 중요한 것은 알고리즘이 매우 빨라야 한다는 것입니다. 주요 아이디어는 일련번호가 포함된 스크린샷에서 바로 확인할 수 있습니다.

  1. 프레임에서 사진을 찍어 640x320 크기로 저장합니다. VLCj를 사용하면 비디오의 해상도가 다르더라도 모든 해상도로 사진을 저장할 수 있습니다. 텍스트 색상에 가까운 모든 점은 검은색으로 표시되고 다른 모든 점은 흰색으로 표시됩니다. 결과적으로 우리는 흑백 사진을 얻습니다. 이 기사에는 그러한 사진 몇 개가 포함되어 있습니다.
  2. 각 스크린샷에 대해 흰색 점과 검은색 점의 통계를 계산합니다. 흰색 점 수가 92% 이상인 것을 배경으로 선언합니다. 테스트에서는 94%로 충분했지만 이는 여유가 있습니다. 배경이 있는 프레임에서 일련번호를 찾습니다.
  3. 연재물은 중앙에 더 가깝게 나타나지만 가장자리에서는 나타나지 않기 때문에 프레임 가장자리에서 30픽셀을 후퇴합니다. 나머지 필드를 20x20 정사각형으로 나누고 각 정사각형에서 검은 점 수를 셉니다.
  4. 우리는 검은 점 수가 10%에서 60% 사이인 사각형을 글자가 있는 사각형으로 선언합니다. 이는 글자가 사각형의 절반 정도만 들어갈 수 있고 약간의 여백이 있을 수 있다는 사실을 고려한 것입니다.
  5. 가로로 문자가 있는 6개 이상의 사각형과 세로로 3개의 사각형이 연속적으로 연속된 시퀀스가 ​​있는 프레임은 일련 번호가 있는 프레임으로 선언됩니다. 폴더에 저장합니다.

결과적으로 일련 번호와 유사한 텍스트가 있는 그림만 나타납니다.

실제로는 그 수가 많지 않으므로 필요한 것을 찾는 것이 어렵지 않습니다.

VLCj로 작업하기
VLCj로 작업하는 것은 매우 간단합니다. 먼저 www.capricasoftware.co.uk/vlcj/tutorial1.php 문서를 읽은 다음 MediaPlayer 클래스를 조금 사용해 보았지만 다소 버그가 있었습니다. 일반적으로 LibVlc 라이브러리에서 직접 함수를 호출하기로 결정했습니다. 더 빠르고 버그도 없습니다.

먼저 라이브러리를 생성합니다
LibVlc libvlc = LibVlcFactory.factory().create();

그런 다음 8개의 분석기 스레드(실행 가능 유형) 배열(비디오 시간의 각 1/8)을 생성하고 이를 다음 순서로 Executors.newFixedThreadPool(4)에 전달합니다: 4, 5, 6, 7, 0, 1, 2, 3. 그. 비디오의 두 번째 부분이 먼저 스캔된 다음 첫 번째 부분이 스캔됩니다. 각 분석기 스레드에는 다음 코드가 포함되어 있습니다.

System.out.println("실행 섹션 " + num); libvlc_media_player_t p_mi = null; libvlc_media_t 미디어 = null; try ( // 준비 //libvlc_instance_t 인스턴스 = libvlc.libvlc_new(0, new String); libvlc_instance_t 인스턴스 = libvlc.libvlc_new(2, new String("--vout", "dummy")); p_mi = libvlc.libvlc_media_player_new( 인스턴스); libvlc.libvlc_audio_toggle_mute (p_mi); media = libvlc.libvlc_media_new_path (instance, filename); libvlc.libvlc_media_player_set_media (p_mi, media); libvlc.libvlc_media_pher _ply (p_mi); msplayerwait); libvlc.libvlc _media_player_pause (p_mi ) ; // 스냅샷 시작 int block = blockFrom; for (long msTime = msFrom; msTime<= msTo; msTime += msInBlock, block++) { String path = snapshotPath + File.separator + "snap-" + String.format("%03d.png", block); libvlc.libvlc_media_player_set_time(p_mi, msTime); int r = libvlc.libvlc_video_take_snapshot(p_mi, 0, path, picWidth, picHeight); if (r != 0) System.out.println("SNAPSHOT FAILED: block=" + block + ", returnCode=" + r); else analyzeImage(path); } } finally { if (p_mi != null) libvlc.libvlc_media_player_stop(p_mi); if (media != null) libvlc.libvlc_media_release(media); if (p_mi != null) libvlc.libvlc_media_player_release(p_mi); System.out.println("Close section " + num); }

analyzeImage 함수는 키가 스크린샷에 있는지 여부를 확인하고, 있으면 특수 폴더에 저장합니다.

2024wisemotors.ru. 작동 방식. 철. 채광. 암호화폐.