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)
'GStreamer' 카테고리의 다른 글
[GStreamer] Push, Pull 방식 (2) | 2017.04.05 |
---|---|
[GStreamer] 디버깅 로그 출력하기 (0) | 2017.03.29 |
[GStreamer] h264 profile 확인하는 방법 (0) | 2017.03.27 |
[GStreamer] 윈도우 Visual Studio 개발 환경 설정 (2) | 2017.03.06 |
[GStreamer] Pad-added Signal (0) | 2017.03.06 |