Table of Contents

구현

한강 공개 cctv 영상 가져오기

공개 되어 있는 cctv 영상 페이지를 들어간다

kbs 재난 포탈 <- 링크

image 12

위와 같은 상황에서 개발자 모드 진입 f12

image 13
image 14

이 링크 복사해두기

import requests
import os
import time
import urllib.request

# 기본 URL 및 .m3u8 플레이리스트 URL
base_url = "https://cctvsec1.ktict.co.kr:8082/livekbs/9965/"
playlist_url = base_url + "chunks.m3u8?nimblesessionid=6321654&wmsAuthSign=c2VydmVyX3RpbWU9MTAvMjYvMjAyMyA2OjE0OjEyIEFNJmhhc2hfdmFsdWU9VlZHQ0hYNldqaG5CQndBWHRFdlJjZz09JnZhbGlkbWludXRlcz0xMjA="

# 이미 다운로드된 세그먼트들의 목록
downloaded_segments = set()
print(downloaded_segments)

count=0
while True:
    response = requests.get(playlist_url)
    lines = response.text.splitlines()
    # print(response)
    print(response.text)
    for line in lines:
        if line.endswith('='):
            
            print(line)
            save_name = './video_ts/test%s.ts'%count
            full_url = base_url + line
            urllib.request.urlretrieve(full_url, save_name)
            count=count+1
    time.sleep(20)

playlist_url 변수 뒤에 위에서 복사한 링크 넣기

image 15

.ts 확장자로 저장된다

처음보는 확장자긴 하였지만 다음팟플레이어로 재생하니 바로 재생 되었다

공부

m3u8 URL에는 스트리밍 영상의 각 세그먼트 정보가 있다. 각 세그먼트는 개별 파일로 저장된다. 이 세그먼트가 우리의 코드에서 저장되는 .ts 파일 이고 m3u8 url 이 chunk 로 시작하는 부분이다.

결국

.ts 확장자를 가진 이러한 세그먼트 파일들은 일반적으로 HLS (HTTP Live Streaming) 방식의 스트리밍에서 사용된다. HLS 스트리밍은 여러 개의 작은 세그먼트 파일들로 영상을 분할하여 전송하며, 이러한 세그먼트들의 목록은 .m3u8 확장자의 플레이리스트 파일에 나열된다.


0 Comments

Leave a Reply