[libav-api] Remuxing interlaced video from mpegts to flv

2015-11-10 Thread Alex Anderson
Hello,

I am using Libav to remux an mpegts stream into an FLV stream and
publishing the stream to an RTMP server. The TS contains H.264 and AAC.
Whenever the encoded video is progressive, the remuxing and streaming
works great. Whenever the encoded video is interlaced and I pull down
the stream from the server, VLC fails to play the stream. Our in-house
decoder is able to play the stream, but there are artifacts on the
parts of the video where there is motion. I should note that we use an
in-house encoder, and can confirm that it encodes interlaced content
correctly.

I tried doing the same remuxing setup with avconv, and it seems to
handle the interlaced content properly:

 avconv -f mpegts -i .ts -c:v copy -c:a copy -f flv rtmp://

I also tried taking the RTMP server out of the picture for both my app
and avconv and wrote the remuxed stream to file. The results are the
same.

I tried to make my app mimic the setup that avconv uses, but it's
tough to tell exactly what the difference is since avconv is fairly
large and built to support everything.

So, I was wondering if anyone could tell me how interlaced video needs
to be handled differently than progressive. Are there some fields I
need to set in the context structures? Filter to use? Limitation of
the FLV muxing perhaps?

Thanks,

Alexander Anderson

P.S. Sorry if the confidentiality statement is appended. It's automatic
for my company email and I can't prevent it.

-- 
*EMAIL CONFIDENTIALITY STATEMENT: This email, including any attachments 
hereto, may contain confidential and/or proprietary information of Videon 
Central, Inc., and/or may include information controlled for export 
purposes under the U.S. International Traffic in Arms Regulations (ITAR) 
and is intended for the recipient only.   No export, sale, transfer, 
release or other disposition of this information is permitted without prior 
authorization. If you are not the intended recipient please 1) do 
not disclose, copy, distribute or use this message or its contents to any 
other person or entity. 2) advise the sender by return e-mail, and 3) 
delete all copies, including attachments, from your computer. Your 
cooperation is greatly appreciated.*
___
libav-api mailing list
libav-api@libav.org
https://lists.libav.org/mailman/listinfo/libav-api


Re: [libav-api] Remuxing interlaced video from mpegts to flv

2015-11-10 Thread Luca Barbato
On 10/11/15 17:10, Alex Anderson wrote:
> Hello,
> 
> I am using Libav to remux an mpegts stream into an FLV stream and
> publishing the stream to an RTMP server. The TS contains H.264 and AAC.
> Whenever the encoded video is progressive, the remuxing and streaming
> works great. Whenever the encoded video is interlaced and I pull down
> the stream from the server, VLC fails to play the stream. Our in-house
> decoder is able to play the stream, but there are artifacts on the
> parts of the video where there is motion. I should note that we use an
> in-house encoder, and can confirm that it encodes interlaced content
> correctly.

> So, I was wondering if anyone could tell me how interlaced video needs
> to be handled differently than progressive. Are there some fields I
> need to set in the context structures? Filter to use? Limitation of
> the FLV muxing perhaps?

My guess is that the problem is in the h264 bitstream parsing/formatting
that avconv does and you probably arent doing.

check do_streamcopy() and av_parser_change() in particular.

lu
___
libav-api mailing list
libav-api@libav.org
https://lists.libav.org/mailman/listinfo/libav-api