Wireshark 및 VLC를 사용하여 RTP h264 스트림을 저장할 수 있음을 알고 있습니다. 그러나 비디오 스트리밍에 대해 더 많이 배우려면 직접 해보려합니다. 이 주제에 대한 좋은 독서 있도록 여러 관련 질문이 있습니다 배경으로 그와H264 RTP 패킷을 유용한 형태로 저장
Problem to Decode H264 video over RTP with ffmpeg (libavcodec)
How to convert H.264 UDP packets to playable media stream or file (defragmentation)
내가 현재 나는 곳이입니다 :
- UTP를 통해 RTP 패킷을받을 수 있습니다.
- 위의 질문에서 설명한대로 패킷을 구문 분석합니다.
- \ x000001로 구분 된 파일에 패킷을 쓰고 위의 지침에 따라 NAL 바이트를 다시 추가합니다.
- 파일의 시작 부분에 나는 내 코드의 RTSP 대화에서 얻은 SPS와 PPS를 서버와 (다시 정확한 바이트로 구분하여) 넣었다.
결국 NAL 프레임이 많은 파일로 끝납니다. 그런 다음 .mp4를 만들기 위해 .264 파일에서 ffmpeg를 실행 해 봅니다.
[H264 @ 0x15257a0] decode_slice_header 오류
[H264 @ 0x15257a0] 어떤 프레임이 몇 가지 오류가납니다!
[H264 @ 0x15257a0] PPS는
참조한 존재하지 않는 [H264 @ 0x15257a0] PPS 0이 아닌 기존 을 참조 [버퍼 @ 0x15e16a0] 잘못된 픽셀 형식 문자열 -1나는이 문제를 알아낼 때까지 본질적으로 정지 상태에있다. 위의 링크 된 질문을 thouroughly 읽고 내가 VLC를 통해 연결하고 볼 수 있기 때문에 스트림을 확실히 볼 수 있으며 들어오는 패킷은 분명히 wireshark에 따라 H264 RTP 패킷입니다. VLC가 그것을 할 수 있다면 왜 안돼! 나는 나의 오류에 대한 어떤 통찰력과 그것들 사이의 불일치를 해결하는 세 가지 연결된 질문에 대한 요약을 매우 높이 평가할 것이다.