목록프로젝트 (7)
VIDEOCUBE
[ 구조분석 ] [ TS 헤더 분석 ] 47 40 11 10 : 0100 0000 ( 40 ) , 0001 0001 ( 11 ) , 0001 0000 ( 10 ) 47 40 00 10 : 0100 0000 ( 40 ) , 0000 0000 ( 0 ) , 0001 0000 ( 10 ) 47 50 00 10 : 0101 0000 ( 50 ) , 0000 0000 ( 0 ) , 0001 0000 ( 10 ) 47 41 00 30 : 0100 0001 ( 41 ) , 0000 0000 ( 0 ) , 0011 0000 ( 30 ) 47 01 00 11 : 0000 0001 ( 01 ) , 0000 0000 ( 0 ) , 0001 0001 ( 11 ) 47 01 00 36 : 0000 0001 ( 01 ) , 00..
ffmpeg 을 이용하여 해당 파일을 ts 화 하였습니다.ffmpeg -y -i ../BigBuckBunny.mp4 -f segment -c:v copy -c:a copy -segment_format mpegts -segment_list_flags -cache -segment_time 10 -segment_start_number 1 -segment_list BigBuckBunny.m3u8 BigBuckBunny-%d.tstest 폴더에 넣고 각 ts 를 분석하는 과정입니다. 1. TS 파일 내에 188바이트씩 나열이 되어 있으며, 최초로 시작되는 1 바이트는 47로 고정되어 있습니다.2. TS Header 분석 [ Video ] 47 40 11 10 : 0100 0000 ( 40 ) , 0001 0001..
사용자가 요구한 시간의 값으로 MP4 의 정보에서 stts 값으로 해당 시간값을 분석하였다. 해당 시간 값을 분석하여 샘플의 위치를 구하고 샘플의 사이즈를 구하고자 한다.mp4 는 chunk 단위로 샘플의 개수를 나타나는데, stts 의 샘플의 위치로 stsc의 sample_per_chunk 의 개수를 통해서 chunk_index 를 구해올 수 있다. 여기서 구해진 chunk_index 는 stco 의 배열의 위치를 가르키게 되는데 chunk_index 는 1번이지만 stco 의 위치는 배열의 첫번째 0 부터 시작한다 해서 chunk_index 의 값의 -1 을 하게 되면 stco 의 위치를 가르키게 됩니다. 샘플의 위치를 이용하여 stsz 에서 사이즈를 가져옵니다.chunk_index 의 값은 각 샘플..
이전 작업으로 MP4 를 이용한 분석을 통해서 샘플데이터를 추출해 볼 수 있습니다. 또한 HLS 를 이용하여 segment list 를 추출해 줄 수도 있습니다. 이제는 TS 를 만들어야 합니다.사용자로 하여금 요구된 시간만큼 TS 로 muxing 을 해야 합니다. 다음 조건을 충족해야 합니다. 해당 조건은 요구된 시간입니다.ㄴ 시간 정보를 통해서 샘플의 데이터를 가져와야 합니다. ㄴ 사용자가 요구하는 시간의 시작지점과 요구되는 duration 값을 받습니다. 예를 0초 부터 10초 10초 부터 20 초간격의 데이터를 요구하는 경우 다음과 같이 받도록 합니다. 0초 부터 10초 ( 0, 10 ) 10초 부터 20 초 ( 1, 10 ) 첫번째는 sequence, 두번째는 duration 으로 칭합니다. 저..
Project Name : [Cube]ㄴ Media Streaming Server 참고 : Nginx + Python CGI 연동 준비Python 서버 구축하기 [CGIHTTPServer] [MP4] 파일 미디어 샘플과 시간 정보를 구하는 방법[MP4] 분석 하기 | MPEG-4 파트 14 | MP4Box 설치 Nginx 설치하기 이전에 Nginx + CGIHTTPServer 서버를 설정했다. 기존에 작성한 hello.py 를 다음과 같이 변경한다. 1. mv hello.py cube.py 2. nginx 설정도 기존 hello.py > cube.py 로 변경한다. 3. nginx 설정 ㄴ location ~ \.(mp4|json)$ { rewrite ^/(.*) /cgi-bin/cube.py?file..
Nginx 에 CGI 를 연결하여 MP4 를 요청이 왔을 때는 정적으로 Mp4 파일을 가지고 갈 수 있도록 하며기타 HLS ( 이하 m3u8, ts ) DASH ( 이하 dash, m4v, m4a ) 요청 시에는 CGI 로 이동하여 변환하여 리턴이 가능하도록 진행 하려고 한다. 모든 요청은 Nginx 를 통해서 들어올 것이며 포트번호 8000으로 외부 접속은 하지 않도록 한다. nginx 설치는 참조 하고http://videocube.tistory.com/entry/Nginx-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0 CGI 설정을 하는 법을 다루도록 한다.python 을 8000 으로 로드 시키는 법은 http://videocube.tistory.com/entry/Python-%..
gitLab 에 network 라는 그룹을 만들고 ping 이라는 프로젝트를 생성하였다 Create a new repositorygit clone http://git.videocube.lab/network/ping.git cd ping touch README.md git add README.md git commit -m "add README" git push -u origin master Existing foldercd existing_folder git init git remote add origin http://git.videocube.lab/network/ping.git git add . git commit -m "Initial commit" git push -u origin master Exist..