2011-09-02 5 views
0

조언을 찾고 있으며 내가하고 싶은 일이 가능한지 알아 봅니다.MPEG 2 - 소스 편집을 통해 맞춤 태그 추가하기

저는 MPEG 2/MPEG-TS 비디오 파일과 함께 사용할 수있는 ID3 mp3 태그와 비슷한 것을 만들 것을 요청 받았습니다. 나는 조잡한 개인이기 때문에, 파일 자체 내에 일종의 XML 구조를 버리는 것을 고려하고 있었다. 그러나 응용 프로그램에서 파일의 XML/ASCII 데이터를 예상하지 않으므로 비디오 파일을 디코딩/재생하려는 응용 프로그램에 문제가 발생합니다.

MPEG 파일의 끝 부분을 수정할 수있는 FILE '명령'의 일종을 사용할 수 있는지 여부가 확실하지 않으며 해당 부분 이후에 XML을 덤프 할 수 있습니다.

현명한 호환성, 나는 그것을 읽는 상업용 응용 프로그램을 '깨는'비디오 파일 만 피할 필요가 있습니다. 태그 정보는 아직 작성하지 않은 응용 프로그램에서 파싱됩니다.

아이디어가 있으십니까? 아니면 제가 불가능하다고 말하는 것은 무엇입니까?

감사합니다.

답변

1

MPEG2-TS 파일을 디코딩하는 프로그램은 188 바이트 패킷을 계속 찾고 있습니다. 16 진수를 보면 0x47 바이트가 표시됩니다.이 바이트는 188 바이트마다 모든 패킷의 동기화 바이트 (첫 번째 바이트도 포함)입니다. XML 데이터를 파일에 추가하면 모든 디코더가 망가질 수 있습니다.

당신이 할 수있는 일은 보통 MPEG2-TS 파일의 시작 부분에서 자신의 패킷을 추가하거나 null-PID 패킷을 공중 납치하는 것입니다. 불행하게도이 작업을 제대로 수행하려면이 데이터가 이미 존재하지 않는 네트워크 정보 테이블에 있어야합니다. 즉, PMT에서 NIT에 대한 참조를 추가해야 할 수도 있습니다. 전송 스트림의 고급 지식 및 구문 분석/쓰기 기능이 모두 필요합니다.

시계 참조를 조정하지 않고도 파일 시작 부분에 패킷을 추가 할 수 있습니다. 아니면 기존 null-PID 패킷을 납치합니다 (클록 참조 변경 필요 없음). 그런 다음 새 패킷에서 8190처럼 사용되지 않는 패킷 ID를 사용하십시오. NIT를 참조하도록 PMT를 수정하지 않고이 작업을 수행하면 참조되지 않은 PID로 인해 완전히 유효한 MPEG2-TS가되지는 않지만 여전히 작동합니다 대부분의 상용 디코더.

MPEG2-TS에 익숙하지 않은 태그 정보를 추가하려고하기 때문에 많은 부분이 의미가 없습니다. 그러나 정확한 형식을 정의하는 표준은 ISO/IEC 13818-1입니다. 이것은 꽤 무거운 독서입니다. 더 가볍고 (그리고 더 저렴하게) 가고 싶다면 wikipedia으로 도망 갈 수 있습니다.

1

년 '자신의 PID를 가지고이 MPEG 2/MPEG-TS 기본적으로 사용자 정의 설명 및/또는 사용자 정의 테이블 (심지어 사용자 정의 스트림 유형)를 추가 할 수 있습니다

을 할 수있는 정직 방법이있다 스트림. 그들은 비디오 이내에 수 없으며 응용 프로그램을 작동 중단하지 않지만 그들은 당신 관점, 문자 다중 방송, VBI 데이터, 큐 - 톤 신호, EPG, DSC-CC 명령을 제공하기 위해

를 읽을 수 있습니다 (그리고 MPEG 시스템을 사용하여 일반 데이터를 전송하는 방법에 대해 이야기하는 경우도 있습니다)은 모두 MPEG-Ts를 통한 사용자 지정 데이터의 예입니다.

자세한 내용은 MPEG2-ISO 13818-1을 참조하십시오 (사용자 정의 테이블에 대한 섹션이 있음). 질문을 수정하십시오.