h264 비디오가 있으며 현재 Apple의 HTTP 비디오 스트리밍 도구 및 미디어 파일 세그먼트를 사용하여 이러한 파일을 분할하고 있습니다. 내가해야 할 일은 이 매우 인기있는 오픈 소스 세그 먼터를 기반으로 대체 세그 먼터로 전환하는 것입니다
문제는이 세그 먼터가 비디오를 가져 오는 것이 아니라 MPEG-TS 비디오 만 가져 간다는 것입니다. h264 비디오를 TS로 먼저 변환해야합니다.
ffmpeg로 할 수 있습니다. 나는 이것을 사용하고있다 :
ffmpeg -i encoded.mp4 -vcodec h264 -i encoded.mp4 -sameq -acodec aac -strict experimental -f mpegts output.ts
그러나 이것은 상당히 큰 출력을 만듭니다. 그 이유는 Apple의 세그 먼터가 동일한 코덱-AVC 및 동일한 오디오 코덱-AAC를 유지하는 반면 ffmpeg는 비디오 형식을 MPEG 비디오로 변경하기 때문입니다.
문제는 어떻게 든 동일한 AVC 비디오 코덱을 유지하면서 비디오를 전송 스트림으로 변환 할 수 있습니까?
그래서 제 목표는 Apple의 medifilesegmenter와 동일한 비디오 품질과 동일한 비디오 코덱을 유지하는 것입니다.
UPD : 좋아요 ... ffmpeg CAN이 비디오를 세그먼트로 분할하는 것 같습니다 :
ffmpeg -i encoded.mp4 -c copy -map 0 -vbsf h264_mp4toannexb -f segment -segment_time 10 -segment_list test.m3u8 -segment_format mpegts segment%d.ts
그것은 여전히 하나의 문제가 있습니다 : 그것은 http live streaming index 파일을 생성하지 않습니다. (-segment_list는 세그먼트 목록이있는 파일을 작성하지만 HLS 색인처럼 보이지는 않습니다.) 따라서 여전히 색인 파일을 만들어야합니다