Python 병합 ts 파일 mp4 형식 및 복호화 튜 토리 얼 상세 설명
m3u 8 형식 파일 을 사용 하 는 것 은 주로 다 중 인 코딩 영상의 적합 을 실현 할 수 있 기 때문에 영상 사 이 트 는 사용자 의 네트워크 대역 폭 상황 에 따라 클 라 이언 트 에 게 적당 한 인 코딩 파일 과 일치 하 게 재생 하여 영상의 유창 도 를 확보 할 수 있다.
m3u 8 은 정확히 말 하면 색인 파일 로 m3u 8 파일 을 사용 하면 실제 적 으로 서버 에 설 치 된 비디오 네트워크 주 소 를 분석 하여 온라인 재생 을 실현 합 니 다.
이 는 동 영상 을 작은 ts 형식의 동 영상 파일 로 자 른 다음 서버 에 존재 합 니 다(현재 I/o 접근 횟수 를 줄 이기 위해 서버 메모리 에 존재 합 니 다).m3u 8 을 통 해 경 로 를 분석 한 다음 요청 합 니 다.
ts 파일 을 통합 하 는 방법 은 여러 가지 가 있 습 니 다.cmd 의 copy 명령 을 사용 하여 ts 파일 을 직접 통합 하 는 튜 토리 얼 이 있 습 니 다.
copy /b movie*.ts movie_new.ts
이 방법 은 합 칠 수 있 지만 mp4 형식 으로 바 꿀 수 없 으 며 동 영상 이 결 손 될 수도 있다.따라서 본 고 는 ffmpeg 를 사용 하여 ts 파일 을 mp4 형식 으로 통합 하 는 방법 을 설명 하고 ffmpeg 을 사용 하면 영상 에 결함 이 발생 하 는 문 제 를 효과적으로 방지 할 수 있 습 니 다.
1.준비
시작 하기 전에 Python 과 pip 가 컴퓨터 에 성공 적 으로 설치 되 었 는 지 확인 해 야 합 니 다.
파 이 썬 의 목적 이 데이터 분석 이 라면 Anaconda 를 직접 설치 할 수 있 습 니 다.
ffmpeg 설치
Mac(터미널 열기(터미널),homebrew 로 설치):
brew install ffmpeg --with-libvorbis --with-sdl2 --with-theora
Linux:
apt-get install ffmpeg libavcodec-extra
Windows:
1.입장http://ffmpeg.org/download.html#build-windows,windows 에 대응 하 는 아이콘 을 클릭 하고 다운로드 인터페이스 에 들 어가 다운로드 단 추 를 클릭 합 니 다.
2.다운로드 한 zip 파일 을 지정 한 디 렉 터 리 로 압축 해제
3.압축 해 제 된 파일 디 렉 터 리 에 bin 디 렉 터 리(ffmpeg.exe 포함)를 path 환경 변수 에 추가 합 니 다.
4.DOS 명령 행 에 ffmpeg-version 을 입력 하고 다음 화면 이 나타 나 면 설치 완료 설명:
2.ts 파일 단순 병합
ffmpeg 를 사용 하여 ts 파일 을 통합 하 는 것 은 매우 간단 합 니 다.터미널 에 명령 을 한 줄 만 입력 하면 됩 니 다.
ffmpeg -f concat -i file_list.txt -c copy output.mp4
그 중 filelist.txt 는 다음 형식 텍스트 파일 입 니 다:
file 'input1.ts'
file 'input2.ts'
file 'input3.ts'
우 리 는 Python 스 크 립 트 로 이 file 을 생 성 할 수 있 습 니 다.list.txt:
import os
filePath = " ts "
file_list = sorted(os.listdir(filePath))
with open(" ts /file_list.txt","w+") as f:
for file in file_list:
f.write("file '{}'
".format(file))
자,이 filelist.txt 는 ts 비디오 와 같은 디 렉 터 리 에 저장 한 다음 cd 가 이 디 렉 터 리 에 들 어가 서 위 에서 언급 한 ffmpeg 통합 변환 명령 을 실행 해 야 합 니 다.ffmpeg -f concat -i file_list.txt -c copy output.mp4
3.복호화 처리
위 에서 말 한 것 은 암호 화 되 지 않 은 ts 파일 입 니 다.이 파일 들 은 다운로드 후 바로 재생 할 수 있 지만 AES-128 암호 화 된 파일 을 다운로드 하면 재생 할 수 없 기 때문에 복호화 가 필요 합 니 다.
암호 화가 필요 한 지 여 부 를 어떻게 판단 합 니까?동 영상 사이트 에 m3u 8 의 파일 전송 이 있 는 지 관찰 하고 다운로드 하여 엽 니 다.
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:13
#EXT-X-MEDIA-SEQUENCE:0
// , ,
// m3u8 , , m3u8 ,
// , #EXT-X-KEY, , m3u8 ,
#EXT-X-KEY:METHOD=AES-128,URI="http://www.example.com/20180125/key.key"
#EXTINF:12.5,
// ,
// m3u8 , ( )、ffmpeg、vlc
// GBDYO3576000.ts , , m3u8
http://www.example.com/20180125/GBDYO3576000.ts
#EXTINF:12.5,
http://www.example.com/20180125/GBDYO3576001.ts
#EXTINF:12.5,
http://www.example.com/20180125/GBDYO3576002.ts
파일 이 암호 화 되 어 있다 면 키 파일 이 필요 합 니 다.키 파일 을 다운로드 하 는 방법 은 m3u 8 파일 과 유사 합 니 다.다음 키 키 키 는 우리 가 다운로드 해 야 할 키 파일 입 니 다.여기 m3u 8 은 2 개 입 니 다.위 와 같이 ts 파일 의 하이퍼링크 가 존재 하 는 m3u 8 파일 을 사용 해 야 합 니 다.모든 ts 파일 을 다운로드 하고 다운로드 한 모든 ts 파일,m3u 8,key.key 를 한 폴 더 에 넣 고 m3u 8 파일 을 index.m3u 8 로 바 꾸 고 key.key 를 key.m3u 8 로 바 꿉 니 다.index.m3u 8 의 URL 을 로 컬 경로 의 key 파일 로 변경 하고 모든 ts 를 로 컬 경로 로 변경 합 니 다.다음 과 같 습 니 다.
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:13
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="e:/20180125/key.m3u8"
#EXTINF:12.5,
e:/20180125/GBDYO3576000.ts
#EXTINF:12.5,
e:/20180125/GBDYO3576001.ts
#EXTINF:12.5,
e:/20180125/GBDYO3576002.ts
그리고 ffmpeg 로 합병:ffmpeg -allowed_extensions ALL -i index.m3u8 -c copy new.mp4
이렇게 해서 큰 성 과 를 거 두 었 다!우 리 는 성공 적 으로 복호화 하고 ffmpeg 를 사용 하여 이 ts 영상 세 션 을 합 쳤 습 니 다.실제 응용 장면 은 이것 과 다 를 수 있 습 니 다.이 글 이 벽돌 을 던 져 옥 을 끌 어 올 리 는 역할 을 하 기 를 바 랍 니 다.
파 이 썬 통합 ts 파일 에서 mp4 형식 및 복호화 튜 토리 얼 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 통합 ts 파일 에서 mp4 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.