[Live-devel] Broken data when streaming HEVC video

Roland Aigner Roland.Aigner at aec.at
Thu May 4 07:08:17 PDT 2017


> I didn’t.  Increasing the buffer size fixes your *immediate* problem.  
Well, then that's exactly what I was saying, and I will look into it later. As for now, I am testing locally, I need a temporary solution, that just works for now. Maybe I was being unclear. Again, I'm aware of what you're saying, so thanks :) However, my problem is that, as I wrote, increasing the buffer size does *not* even fix my immediate problem, thus it does not even work on localhost. 

And this is where I'm stuck. SPS, PPS, VPS NAL units are apparently mandatory, not just for ffplay, but also for MPC, and VLC, and also for my own NvCodec based decoder. I never wrote them into my files, and no program ever complained about it. The files I'm writing from within the server prior to sending (the one I gave you yesterday) are perfectly fine and do *not* contain a header. So I wasn't answering my own question, the header being present doesn't change anything. So this cannot be the source of error here. 

Anyways, I found that H265VideoFileSink works while my modified DummySink (as well as my own implementation of a MediaSink) does not. This is a point to investigate. I'm afraid, I've got an extensive debugging session ahead of me, I'll let you know when I get any findings. I was just hoping that somebody could point me towards some nuance I may have missed.

Best,
Roland




-----Ursprüngliche Nachricht-----
Von: live-devel [mailto:live-devel-bounces at ns.live555.com] Im Auftrag von Ross Finlayson
Gesendet: Donnerstag, 4. Mai 2017 14:50
An: LIVE555 Streaming Media - development & use <live-devel at ns.live555.com>
Betreff: Re: [Live-devel] Broken data when streaming HEVC video

> I read your reply as "this is the proper way to do it". Why would you suggest to increase the buffer size AND do slicing at the same time?

I didn’t.  Increasing the buffer size fixes your *immediate* problem.  But the ultimate solution - if you ever want to stream to more than just ‘localhost’ - is to slice your key frames (in which case you won’t need a buffer any larger than your largest slice).

Because you’re using our software, you presumably intend to someday stream your video over a network (otherwise you’d just use a pipe or stdout to a file, and not packetize your video at all).


> Again, I'm not sure how the output is any different from what H265VideoFileSink generates, apart from the SPropRecords header

You’ve answered your own question.  The difference is that “H265VideoFileSink” prepends the output file with the SPS,PPS,VPS NAL units.  (See “H264or5VideoFileSink.cpp”, lines 46-56.)


> which, to my experience isn't mandatory.

Well, apparently it *is* mandatory if you’re playing the file with “ffplay” :-)


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel



More information about the live-devel mailing list