Results 1 to 10 of 10

Thread: Cupertino http streaming. Wrong seek on iOS

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Jan 2013
    Posts
    10

    Question Cupertino http streaming. Wrong seek on iOS

    Please help!

    Wowza 2.2.4 update 8 on EC2.
    My work isn't trivial. We have mp4 files and they were encoded with manual keyframe settings. For example, every 4-th frame is keyframe (ffmpeg g 4, keyint_min 4). This is need to seek on file with constant interval. This files are stored on Amazon s3.

    We have AIR application that play video. When we play video in Web version (via sanjose) - it works perfect and when we seek to place, video start play from seek point.
    But when we try it on iOs... The file duration isn't the same (when we use sanjose, we have something like 194.02355 but when we use cupertino, we have 194).
    The seek work, but we move not to seek position, we move to various keyframes near our place. We find this issue on wowza 2.2.4 and have updated it to 2.2.4(update 8). But nothing changed. We also try Wowza 3.5.2 on anther server and problem is still exist.

    We also changed cupertinoChunkDurationTarget from 1000 to 10000 (1500, 2000, 2500, 3000, 4000 ... 10000). With all values we can't move to place what we seek. We move on wrong place.
    We also have encoded files and made keyframes equal to chunk duration. In this case we also doesn't have right seek.
    What can you say and what we should do to correct this behaviour?

  2. #2
    Join Date
    Sep 2011
    Posts
    1,933

    Default

    Hi
    I the [Wowza-Install]/conf directory you should be able to see a file called Streams.xml.
    If you edit this file, do a search for "seekTarget" you will see a Property like this
    <Property>
    	<Name>seekTarget</Name>
    	<!-- valid values are: videoKeyFrame, audio, enhanced //DEFAULT = videoKeyFrame -->
    	<Value>videoKeyFrame</Value>
    </Property>
    Change <Value>videoKeyFrame</Value> to <Value>enhanced</Value>

    The Property will now look like this
    <Property>
    	<Name>seekTarget</Name>
    	<!-- valid values are: videoKeyFrame, audio, enhanced //DEFAULT = videoKeyFrame -->
    	<Value>enhanced</Value>
    </Property>
    This may adjust the seek to be more suitable for your needs.
    You will need to restart Wowza for this to take effect.

    Jason

  3. #3
    Join Date
    Sep 2011
    Posts
    1,933

    Default

    Hi
    My apologies I stand corrected, this only applies to Flash player seeking.

    The only thing I can think of would be to have more frames per second.
    If you currently have 8 fps and have a keyframe every 4th frame that's a keyframe every 0.5 seconds

    The iOS device will create a chunk on a keyframe which means you would be accurate within 0.5 seconds.
    This is assuming that the iOS device is not limited to seek within 1 second or something which it may well be I'm not sure.

    Jason

  4. #4
    Join Date
    Jan 2013
    Posts
    10

    Default

    We have 25 fps and every 4-th is keyframe, f.e.
    And with "enhanced" property nothing changes...

    When we seek on ios, we seek in position like 20.358 sec but move to 20.128 sec. Not in 20.358.
    Also frames are different on ios and web versions after we make many seek operation. Looks like Wowza delete some frames from video and start not from zero but from another frames...

    I really don't know why it's happens.

  5. #5
    Join Date
    Dec 2007
    Posts
    21,962

    Default

    I think iOS device seeks within the chunks. It might seek only to key frames, but I am not sure. There is not a way to improve this in Wowza.

    A key frame every 4 frames is unusual, not sure what that might have to do with it.

    Richard

  6. #6
    Join Date
    Jan 2013
    Posts
    10

    Default

    So... you say that accurate seek doesn't available on Wowza and we can't do nothing? Very bad...

    Another question for this theme: why file duration that we get from server isn't the same on web and iOS? Why?
    Thera are information from two files. First file has every 4th frame keyframe, the second has every 10th frame keyframe.

    What we get from Wowza:
    First file:
    IOS: duration: 195
    Web: duration: 195.243
    IOS:
    Want to move to: time: 72.5; frame: 435
    Actually move to: time: 69; frame: 414
    Web:
    Want to move to: time: 72.528; frame: 435
    Actually move to: time: 72.53; frame: 435

    Second file:
    IOS: duration: 974
    Web: duration: 972.779
    IOS:
    Want to move to: time: 338; frame: 845
    Actually move to: time: 336; frame: 840
    Web:
    Want to move to: 338.132; frame: 845
    Actually move to: time: 338.133; frame: 845

    Why this happens and what we can do with this issue?
    Last edited by V4siliy; 02-27-2013 at 12:40 AM. Reason: Add time and frame values

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •