GStreamer

[GStreamer] RTSP의 H264 영상 Dump 방법

behonestar 2017. 3. 29. 10:03

RTSP로 스트림되는 H264 영상을 GStreamer로 Dump하는 방법입니다. rtph264depay를 통해 출력되는 h264 데이터의 stream-format을 byte-stream으로 지정해줘야 streameye와 같은 툴로 분석이 가능합니다.


gst-launch-1.0 rtspsrc location="rtsp://media.smart-streaming.com/mytest/mp4:sample.mp4" ! rtph264depay ! video/x-h264,stream-format=byte-stream ! h264parse ! filesink location="/path/to/video.h264"



*H264 Byte Stream 포맷?

- SPS > PPS > I/P/B 슬라이스 순서로 나열됩니다.

- 각 프레임은 SCP(0x000001 또는 0x00000001)로 시작합니다.

- SCP와 SCP 사이에는 완전한 프레임 한장이 들어갑니다.

- 각 Access Unit 앞에 AUD(Access Unit Delimiter)를 넣어서 Access Unit의 시작을 표현할 수 있습니다.

 (※ HTML5 video 태그로 h264 영상을 재생할 때 AUD가 없는 영상은 재생이 안되더라구요!)




*H264 Access Unit?

- MPEG 규격의 비디오와 오디오 데이터를 다룰 때 기본 단위입니다.

- Access Unit 하나의 구조는 아래와 같습니다.

- Access Unit Delimiter는 00 00 00 01 09 xx 포맷을 따릅니다. (I: 0x10, P: 0x30)