어제는 뻘글을 썻으니 오늘은 정상적인 글을 씁니다. 밑에 결론 요약 해뒀습니다.
하이라이트를 찾는 아래처럼 다양한 방법이 있습니다.
1. 음성 활용 : 하이라이트 장면은 대부분 소리가 크므로 소리가 높은 부분을 추출
2. 음성 활용 : 영상의 소리를 텍스트로 변환하여 문맥을 통한 판단
3. 채팅 활용 : 하이라이트 장면에서는 채팅의 많아지는 것을 이용하여 채팅의 빈도를 통해 하이라이트를 찾음
어제 뻘글 쓰느라 쓴 트위치 채팅 API가 있으므로 이를 활용해서 3번의 방식을 테스트 해보았습니다.
방법) 다시보기의 채팅을 불러와서 'ㅋㅋ'의 빈도가 높은 곳을 하이라이트로 정의
활용된 영상 : https://www.twitch.tv/videos/1483379579
위 다시보기 영상의 텍스트를 추출하여 'ㅋㅋ'이 들어간 채팅의 빈도를 그리면 아래와 같습니다.
(가로축 : 시간(단위 10초), 세로축: 'ㅋㅋ'이 들어간 채팅 수 / 최댓값 = 14)
적절한 알고리즘을 적용한 코드를 작성하여 영상의 하이라이트를 선별하고 유튜브에 사용된 구간과 비교를 해보죠.
영상에 쓰인 판이 5:23:00~5:55:00 이므로 이 부분에서만 코드를 실행했습니다. (실행 시간은 당연히 0.00초)
코드 | Short 영상 |
5:27:38 ~ 5:27:44 | |
5:36:05 ~ 5:36:14 | |
5:37:10 ~ 5:37:19 | 5:37:10 ~ 5:37:15 |
5:38:42 ~ 5:38:47 | |
5:40:30 ~ 5:40:35 | |
5:42:57 ~ 5:43:05 | 5:37:49 ~ 5:37:55 |
5:43:07 ~ 5:43:16 | 5:42:58 ~ 5:43:07 |
5:44:35 ~ 5:44:38 | 5:44:24 ~ 5:44:40 |
5:46:32 ~ 5:46:36 | |
5:47:45 ~ 5:47:53 | |
5:48:20 ~ 5:48:21 | |
5:51:40 ~ 5:51:45 |
위와 같이 11개가 검색 되었고 Short 영상에서 이에 포함되는 4개의 구간에 사용되었습니다. 나머지 구간들도 원본 영상들에서 쓰이는 부분이랑 어느 정도 겹치는 거 같긴 한데 시간 찾기 귀찮으니 넘겼습니다. 생각보다 정확성이 있네요.
장점)
1. 어느 정도 하이라이트를 바로 알 수 있음 -> 긴 시간을 가진 영상의 하이라이트를 찾을 때 편함
2. 실행 시간이 짧다. (텍스트 파일 추출하는 몇 초 정도)
3. 'ㄷㄷ' 같은 채팅으로 검색할 시 매드무비 영상들도 선별 가능
단점)
1. 채팅에 의존하므로 채팅이 적을 시 정확도가 떨어짐
2. 웃긴 부분만 찾으므로 영상의 양질의 퀄리티를 위해서는 어느 정도 줄거리를 알아야 함.
3. 초기 세팅이 귀찮음(파이썬 설치 및 API 사용 계정 등록 관련, 알면 몇 분 컷이지만 잘 모르면...)
결론)
1. 채팅을 통한 하이라이트 분석이 어느 정도 가능하다.
2. 엘xx 같이 몇십 시간의 긴 영상의 하이라이트를 추출할 때 이런 방법을 써보면 어떨까요? 파일은 필요하시면 드리겠습니다.