Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing chunks in video #22

Open
4netinteractive opened this issue May 15, 2015 · 13 comments
Open

Missing chunks in video #22

4netinteractive opened this issue May 15, 2015 · 13 comments

Comments

@4netinteractive
Copy link

Hi,

With the latest sdk (v1.3) we're still experimenting issues with missing parts of the video. When you record a livestream, and later on you'll view the video, there are parts missing in the video. The issue was already there for a while, but still not solved in this version.

See for example: https://kickflip.io/67841435-5319-4d65-ba39-55e00b00133c/
Sometimes it's working fine, sometimes not, about 50% I think.

Perhaps related to: Kickflip/kickflip-ios-example#6 ?

@chrisballinger
Copy link
Member

Have you tried applying the change suggested here? Kickflip/kickflip-ios-example#6 (comment)

@4netinteractive
Copy link
Author

Yup we did, we even went a step further. It seemed to help with start and end buffering for shorter video's, but with video's of about 2 minutes, we often miss some video somewhere in the middle.

@chrisballinger
Copy link
Member

The only thing I can think is that the S3 upload request is erroneously 'succeeding'. Can you print the files dictionary after the recording is complete, as well as an enumeration of directory contents? Maybe nextSegmentIndexToUpload is skipping a file? In uploadNextSegment you could enumerate the directory contents to see if there's a file with a lower index that wasn't uploaded even though nextSegmentIndexToUpload has moved beyond.

@4netinteractive
Copy link
Author

Hi Chris,

We've added some extra logging and checked it, but all files were uploaded correctly (also the last "ts" is also uploaded with the fix from issue 6).

For some video's everything is ok, other video's still give errors. I think the success rate I have is about 50%.

See for example this video I just recorded with the example code, with the fix from example issue #6: https://kickflip.io/e272ca28-4cd8-4b78-b671-5db32060a58b/
It freezes for about 17 seconds.

But while livestreaming this video, it didn't stop, but there were 2 other issues. While opening the livestream it has a black screen for about 15 seconds, before the livestream begins, and it ends earlier than the livestream is started. While the recorderd video doesnt show a black screen when first loading, and ends at the correct place.

Also if you check the 2 different stream urls (index.m3u8 and vod.m3u8) you'll see the index doesnt freeze and de vod does freeze.

Can you have a look at this issue? Since it's done with the example app, I dont have to give you any source code, you can try it right out the box. Working with video's of 1 or 2 minutes.

@leoafarias
Copy link

We are also trying to run Kickflip and I am having the same issue. The video seems to be streaming, it creates the stream but I cannot see it on the player. The thumbnail is generated correct correctly and everything but the stream and the video after the fact cannot be played.

@chrisballinger
Copy link
Member

@4netinteractive This appears to be an issue with the manifest generator. We are investigating a solution, thank you for your report!

@nicholas
Copy link

Hi @chrisballinger , any news on this? I've been diving in myself and will continue to do so, but you've got much better domain knowledge about this space than I do. I'm checking the manifest file after a bunch of test recordings and seeing all kinds of odd results. Missing ts chunks in the middle, missing ts chunks at the end with missing manifest terminators (#EXT-X-ENDLIST), and occasionally entirely blank manifests.

If you could at least shed some light on what you guys know, that'd help. I'll try and work something up that everyone could benefit from, but at the very least create a hold over for myself. Thanks.

@4netinteractive
Copy link
Author

Hi @chrisballinger https://github.com/chrisballinger ,

We also like to know the status of this issue since our client Cloozup is relying on your services for their clients.

Can you update us today?

Met vriendelijke groeten / With kind regards,

Christiaan Berger Projectmanager http://www.linkedin.com/in/christiaanberger cid:[email protected] http://www.twitter.com/bergermedia cid:[email protected]

4net interactive | +31 (0)343 444 554 | mailto:[email protected] [email protected] | http://www.4net.com/ www.4net.com

Van: Nicholas Phillips [mailto:[email protected]]
Verzonden: woensdag 27 mei 2015 19:27
Aan: Kickflip/kickflip-ios-sdk
CC: 4netinteractive
Onderwerp: Re: [kickflip-ios-sdk] Missing chunks in video (#22)

Hi @chrisballinger https://github.com/chrisballinger , any news on this? I've been diving in myself and will continue to do so, but you've got much better domain knowledge about this space than I do. I'm checking the manifest file after a bunch of test recordings and seeing all kinds of odd results. Missing ts chunks in the middle, missing ts chunks at the end with missing manifest terminators (#EXT-X-ENDLIST), and occasionally entirely blank manifests.

If you could at least shed some light on what you guys know, that'd help. I'll try and work something up that everyone could benefit from, but at the very least create a hold over for myself. Thanks.


Reply to this email directly or view it on GitHub #22 (comment) . https://github.com/notifications/beacon/AA4yiNlp8H93KREv3jAgC93DIe-mEbI4ks5oNfXsgaJpZM4Ebhxz.gif

@4netinteractive
Copy link
Author

Hi,

Any news on this?

@chrisballinger
Copy link
Member

Sorry we haven't been able to find a fix to the problem yet. If anyone
finds a solution we will merge your pull request.

A helpful feature would be to add a callback function to FFmpeg itself that
notifies us about updates, which would reduce a lot of complexity on our
end. Ideally merged upstream in FFmpeg :)

On Mon, Aug 17, 2015 at 4:56 AM, 4netinteractive [email protected]
wrote:

Hi,

Any news on this?


Reply to this email directly or view it on GitHub
#22 (comment)
.

@nicholas
Copy link

I actually did manage to fix it. Been meaning to swing back around and clean up for a pull request (along with several other improvements), and will - have been given the green light for sometime soon.

If you're feeling adventurous, you can get a sneak @ our fork: https://github.com/twinenginelabs/kickflip-ios-sdk

There's a lot of stuff in there I need to separate out for sensical contributions back upstream, but the main one regarding this issue is: therubyshore@f7c8579

Basically what was happening was the composite manifest would get a later chunk and never fill in an older chunk even if it finished uploading. Don't recall all the specifics though. It did appear to be using a serial queue to avoid that, but didn't work out in practice - maybe for some other reason.

When I submit a PR for it, I'll try and be more thorough. :)

@chrisballinger
Copy link
Member

Wow, awesome work!

On Mon, Aug 17, 2015 at 1:10 PM, Nicholas Phillips <[email protected]

wrote:

I actually did manage to fix it. Been meaning to swing back around and
clean up for a pull request (along with several other improvements), and
will - have been given the green light for sometime soon.

If you're feeling adventurous, you can get a sneak @ our fork:
https://github.com/twinenginelabs/kickflip-ios-sdk

There's a lot of stuff in there I need to separate out for sensical
contributions back upstream, but the main one regarding this issue is:
therubyshore/kickflip-ios-sdk@f7c8579
therubyshore@f7c8579

Basically what was happening was the composite manifest would get a later
chunk and never fill in an older chunk even if it finished uploading. Don't
recall all the specifics though. It did appear to be using a serial queue
to avoid that, but didn't work out in practice - maybe for some other
reason.

When I submit a PR for it, I'll try and be more thorough. :)


Reply to this email directly or view it on GitHub
#22 (comment)
.

@4netinteractive
Copy link
Author

Hmm I tried this fix (good work nicholas on all your fixes), but I still getting the missing chunks error. The "livestream" is okay and not missing any, while the recorded has some missing chunks.
While I tested a second time, the livestream wasn't properly recorded/ended.

We're getting mixed behaviors, sometimes it's working great, othertimes it gives us all kind of errors (not saving the video, sometimes not saving the thumb, sometimes breaking the livestream for the viewers, sometimes missing chunks). While this issue is about the last, let's focus on that first.

Chris, will there be any support from your side?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants