IP 단편화를 피하기 위해 h264 부록 B NAL 단위 크기를 줄이는 방법은 무엇입니까?


1

RTP를 사용하여 터미널로 비디오를 스트리밍하려고합니다. 비디오는 h.246에 코딩되어 있습니다. ffmpeg를 사용하여 h.264 부록 B에 따라 바이트 스트림을 추출합니다.

ffmpeg -i test.h264 -vcodec copy -vbsf h264_mp4toannexb -an out.h264 

이것은 잘 작동하지만 일부 NAL 유닛은 네트워크 MTU보다 크기 때문에 얻을 수 있습니다. 터미널로 전송되면 IP로 조각난다. 터미널은 조금 게으른 것처럼 보이고 조각난 데이터 그램을 버려서 비디오를 끔찍하게 재생합니다.

그래서 기본적으로 NAL 단위 크기, 어떤 아이디어를 줄이는 방법이 필요합니까?


NAL의 크기는 부호화시 엔코더에 의해 결정되며, 비트 스트림 레벨에서는 아무 것도 할 수 없다. 유일한 해결책은 다시 인코딩하는 것처럼 보입니다.
rajneesh

@rajneesh 귀하의 의견에 감사드립니다. 나는 해냈다. 비디오를 raw로 디코딩 한 다음 h246으로 다시 인코딩했지만, 줄일 수없는 이러한 거대한 (약 3kb) SPS 프레임을 얻습니다.
Nicolas Emiliani

여러 개의 슬라이스를 사용하면 각 슬라이스를 별도의 NAL 단위로 넣을 수 있습니다. 그림 크기, 비트 전송률에 따라 그림 당 슬라이스 수를 선택할 수 있습니다.
rajneesh

@rajneesh 나는 당신이 행운을 빌어 제안한 것을하려고 노력했다. 나는 인코딩을 위해 x264를 사용하고 있지만 여전히 거대한 SPS를 얻고있다 ... 이것은 내가 시도하고있는 라인이다 : $ x264 --profile baseline - 입력 - 해상도 352x288 - 슬라이스 8 - 슬라이스 - 최대 크기 1200 -o test.h264 --fps 15 --bitrate 90 video.yuv
Nicolas Emiliani
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.