ffmpeg에서 다음과 같은 의문점이 있습니다. 명확히하십시오.av_read_frame 후 ffmpeg 단위의 패킷 크기
1.I이는 FFmpeg을 사용하여 MP4 파일을 읽는 오전 av_read_frame 을 수행 한 후 내가 비디오 (stream_index를 = 0) 얻고, 오디오 (stream_index를 = 1) 패킷 비디오/오디오 packets.Is의 오심의 어떤 순서가없는 우선 그것은 표준 경우입니다.
2. 비디오 패킷의 크기가 최소 14에서 최대 21824입니다. 비디오 패킷 크기가 달라지는 이유를 지적하십시오. 은 비디오 용으로 하나의 패킷을 의미하므로 하나의 프레임을 의미합니다. video pkt-> size = 14 또한 비디오의 한 프레임과 같습니다 (pkt는 AVPacket 유형 임).
3. 들어오는 mp4 스트림을 파싱하는 동안 검색 기능에서 수신되는 mp4 스트림을 demux하고 일부 버퍼에 정보를 저장하거나 av_read_frame을 호출하여 demux합니다.
4. ffmpeg에서 mp4 파일을 demux하고 비디오 패킷이 stream_index = 1이고 오디오가 0 인 패킷의 한 스트림에/v를 모두 할당 할 수 있습니다. 또는 이거나 별도이어야합니다 흐름.
5. 전송 스트림과 mp4 파일에 대한 ffmpeg 처리 사이의 차이. 둘 다 디 멀티플렉싱되거나 동일한 방식으로 디코딩되거나 다른 경우입니다.
안부 Mayank
ffprobe -show_packets가이 정보를 표시 할 수 있기 때문에 "i- 프레임"이 꽤 큰 경향이 있습니다 (i- 프레임인지 아닌지를 나타내는 어딘가의 플래그가 있어야 함) – rogerdpack