In case of an RTMP stream when the player is paused and seek is applied by clicking the timeline no still frame is sent back to the Flash client. It would be desirable to show a still frame in order indicate seek action back to the user.
The following actions are taken when seek when paused:
NetStream.Seek.Notify
NetStream.Play.Start
NetStream.Buffer.Full
NetStream.Buffer.Flush
NetStream.Buffer.Empty
Buffer is emptied. Is there something we can do about it either on Flash client side or server side?
(Wowza 2.2.3 is used here)
The Wowza Flash example, SimpleVideoStreaming/client shows the current frame of a video on demand stream when you pause. If you are talking about a live stream, the NetStream pause and togglePause do not work for live streams, and there is no built-in (to Flash) way to show a frame.
Richard
The problem seems to occur as well on .mp4 files but not frequently. I seek > see in my IMediaStreamActionNotify2 class a nice onSeek > location does change > netStream.time get updated > the frame is not sent I see the old frame, if I reattach the netstream on a new video object I don’t get a frame at all. I’m using enhanced seek.
In the previous case, the .f4v file was actually a .flv file.
Test with Wowza player examples/SimpleVideoStreaming/client/simplevideostreaming.html
Inspect the file with GSpot
Set up VOD streaming
Richard
I see some ISO 14496-12 and ISO 14496-14 in my video.
Video 1:
mp42: MP4 v2 [ISO 14496-14]
- isom: MP4 Base Media v1 [IS0 14496-12:2003]
Recommended Display Size: 320 x 240
Created: 2011 Aug 10 10:36:02
Modified: 2011 Aug 10 10:36:02
audio: mp4a: MPEG-4 AAC LC
Video 2:
isom: MP4 Base Media v1 [IS0 14496-12:2003]
-
iso2: MP4 Base Media v2 [ISO 14496-12:2005]
-
avc1: MP4 Base w/ AVC ext [ISO 14496-12:2005]
-
mp41: MP4 v1 [ISO 14496-1:ch13]
Recommended Display Size: 640 x 480
Created: 1970 Jan 01 19:00:00
Modified: 1970 Jan 01 19:00:00
audio: mp4a: MPEG-4 AAC LC
Will I encounter issues if its not exactly using MPEG4 Part 10? I don’t see which part the file Wowza provide in the example is using.
I can reproduce with your client application connected to my Wowza Application (which basically just change the content folder and use enhancedSeek)
What exactly do you see, or not see, when you click pause using Wowza example and your file?
What do you see when playing the Wowza sample.mp4 ?
Richard
I’m able to reproduce the issue with sample.mp4.
I click pause, seek to multiple location on the seekbar untill a seek occur but the frame is not updated.
So what I see is the frame at location x0 while the seekbar is at location x1. The frame at location x1 was not provided and therefor I’m seeing an invalid image from the old x0 location for a valid location which is now x1.
It works for me with sample.mp4, Wowza 2.2.4.01, Wowa player, Flash 10,3,183,5 in Chrome. If you are too near the end of the seek bar it might not work, but click back and it does.
Richard
I’m not sure I understand your “It works” statement. Do you understand the issue? I do a netStream.seek(position) get the netStream.time updated to that position but the frame is not updated. To reproduce this behavior with your player it might take several click on your seekbar (took me 5 min to reproduce). To reproduce its not even necessary to run flash in the browser, it will always occur (chrome/firefox/stand alone flash player).
Once you reach an inconsistent frame just click real near in the seekbar you will see its obvious that the frame as not been sent to the video netstream.
I guess I would have to suggest to go with what works for your requirements.
Richard
I guess I would have to suggest to go with what works for your requirements.
Richard
It might help to add the seekTarget Property set to “enhanced” in the /conf/[app-name]/Application.xml /Streams Properties container:
<!-- valid values are: videoKeyFrame, audio, enhanced //DEFAULT = videoKeyFrame -->
<Property>
<Name>seekTarget</Name>
<Value>enhanced</Value>
</Property>
If that doesn’t help, copy an example to your web server and send a download link to support@wowza.com for us to download and try.
Include a link to this thread for reference.
I do not know if there is a way to fix it if it doesn’t work. The f4v files are often fragmented, which is a challenge for streaming (higher overhead), and might be a factor in how image is displayed in pause.
Richard
In the previous case, the .f4v file was actually a .flv file.
Test with Wowza player examples/SimpleVideoStreaming/client/simplevideostreaming.html
Inspect the file with GSpot
https://www.wowza.com/docs/how-to-view-on-demand-file-details
Richard
What exactly do you see, or not see, when you click pause using Wowza example and your file?
What do you see when playing the Wowza sample.mp4 ?
Richard
It works for me with sample.mp4, Wowza 2.2.4.01, Wowa player, Flash 10,3,183,5 in Chrome. If you are too near the end of the seek bar it might not work, but click back and it does.
Richard
I tested with the Wowza SimpleVideoStreaming example player and sample.mp4. I have not been able to replicate what you describe.
Richard
Do you mean, “In case of an RTMP stream when the player is paused and seek is applied by clicking the timeline no still frame is sent back to the Flash client. It would be desirable to show a still frame in order indicate seek action back to the user.”?
Using Wowza 3.03.09, Flash 11, SimpleVideoStreaming Wowza example player, and sample.mp4 (Wowza sample video in content) folder, it works for me.
Try encoding with more frequent key frames.
Richard
Yes, it works with sample.mp4 you provide with WMS package.
I run the following test: I encoded an mp4 and an f4v file from the same source, with all the same paramters using ffmpeg.
mp4 works nicely, f4v not. So, this is caused by my f4v file. Could you please advise me how to proceed to find the problem?
Richard, thanks, but we are not able to reconvert our 2000 hours lenght of archive, what would take months! Should be working with F4V. How can I debug at Wowza side? Thanks.
Enhanced seek is being used, it does not help. I will put an f4v file to a webserver and send it to you. Thanks.
I just want to say that we encounter that problem with HDS, too. And streams/ properties/ that Richard suggests not working for us.
It’s critical for us that we can’t provide good seek and switch channels. What can we do?
Yes but we solve this problem by implementing I-frame more frequently.