1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-11-29 05:57:37 +02:00

avformat/rtpenc_rfc4175: support for interlace format

Below are steps how to test on your local host:
wget --no-check-certificate https://samples.ffmpeg.org/MPEG2/interlaced/burosch1.mpg

1. interlace format:
ffmpeg  -re -i ./burosch1.mpg  -c:v bitpacked  -pix_fmt yuv422p10  -f rtp  rtp://239.255.0.1:6000
copy and create sdp file test.sdp
ffplay -buffer_size 671088640 -protocol_whitelist "file,rtp,udp"  test.sdp

2. progressive format:
ffmpeg  -re -i ./burosch1.mpg  -vf yadif -c:v bitpacked  -pix_fmt yuv422p10  -f rtp  rtp://239.255.0.1:6000
copy and create sdp file test.sdp
ffplay -buffer_size 671088640 -protocol_whitelist "file,rtp,udp"  test.sdp

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
This commit is contained in:
Limin Wang
2022-01-01 20:19:50 +08:00
parent 3ea93bbd6d
commit b697326a68
4 changed files with 33 additions and 14 deletions

View File

@@ -622,9 +622,14 @@ static int rtp_write_packet(AVFormatContext *s1, AVPacket *pkt)
ff_rtp_send_jpeg(s1, pkt->data, size);
break;
case AV_CODEC_ID_BITPACKED:
case AV_CODEC_ID_RAWVIDEO:
ff_rtp_send_raw_rfc4175 (s1, pkt->data, size);
case AV_CODEC_ID_RAWVIDEO: {
int interlaced = st->codecpar->field_order != AV_FIELD_PROGRESSIVE;
ff_rtp_send_raw_rfc4175(s1, pkt->data, size, interlaced, 0);
if (interlaced)
ff_rtp_send_raw_rfc4175(s1, pkt->data, size, interlaced, 1);
break;
}
case AV_CODEC_ID_OPUS:
if (size > s->max_payload_size) {
av_log(s1, AV_LOG_ERROR,