Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Audio and Video Performance Tweaking

Avatar

Level 4

Hey guys I'm back with more questions.  I'm trying to improve the overall quality of my video conference experience.   My target market is the elderly and their families, so not necessarly people who are used to computers and tweaking things so we want to make it as good as we can right out of the box.

Video
1.)  All of my decoded video has clearly visible blocks.  I've attached a sample screen shot to show what I mean.  Is there a deblocking filter option I'm missing somewhere?
2.)  The encoder in flash player 10.x is still H.263 based right?  I'm not missing a secret option to use the H.264 encoder am I?


Audio
1.)  I've set my audio codec to speex in my audio publisher, and it looks like it defaults to a quality setting of 10 (<rtc:AudioPublisher id="audioPub" codec="{SoundCodec.SPEEX}"/>).  Am I missing any tweaks to improve the audio quality?

Audio questions where I assume the answer is no but I ask anyway

2.)  Does the LCCS code or flash player prioritize audio packets over video packets or are they just sent when they're available.  I'd like to sacrafice video for audio if it's possible.

3.)  Is there a way to better syncronize the video and audio streams.  Right now there's a lot of lag between what is said and how the lips move (this is even with peer to peer on the same private network).   I get the idea that there isn't but I thought I'd ask.

4.)  Is there anything I can monitor to give me an idea of the current connection performance?   In otherwords can I monitor something and then make my own decicions to reduce the video quality or audio quality based on avaiable bandwidth between the two connected peers?

5.)  You secretely have echo cancellation built in but were waiting till now to tell me right?  Just kidding.

Thanks as usual

-Eric

4 Replies

Avatar

Level 4

I see some deblocking filter information in flash.video, can I apply any of that to a webcampublisher or subscriber?

-Eric

Avatar

Former Community Member

Hi,

For Video,

Isn't changing the captureAndHeightFactor i.e. giving it a higher value solve your problem ? I thought we had a discussion wherein when you change that, the blocks improve. You can also change the quality and keyFrameInterval values to see any changes, but if the connection at the receiver end is very bad, it is hard to get rid of blocks.

I am not aware of any deblocking filter that we use or that is there in Camera class in flash.media .

I don't think you are missing any option to use H.264 encoder. You can still pose a question on Flash Player forum on this.

For Audio,

We do set the SilenceLevel to 0 and Frames per packet to 1 for speex so as to receive the audio and dispatch the Activity Event, but other than that we don't set any specific value and you can use the APIs in Microphone to make any changes.

LCCS doesn't have any priority algorithm of audio over video or vice versa.

Currently, audio and video are two separate streams and I agree there may be synchronization issues sometimes specially on poor connection. We will think about what can be done on this.

We don't have a secret echo Cancellation mechanism When the player will have it, it will be there in LCCS immediately. Please vouch for this feature more on Player forum so that this becomes a priority for them.

Most of our audio and video features are directly player dependant. We provide publish/subscribe mechanisms along with video layouts to get it working in a multiuser environment.

Hope this helps.

Thanks

Hironmay Basu

Avatar

Level 4

Hironmay,

       Thank you for getting back to me, I know I asked a lot in one post there.   It would be nice to have a way for audio packets to be prioritized over video since they need to get there but  you can live with dropped video frames.   I'd love to see a way to sync the audio and video up as well.  I was just reading about some research where they showed if you can watch someones mouth move while you hear them talk it's equivelant to a 20dB volume increase (referrning to how well the person can understand you.)   I have elderly users so something like that is very important to me.

I agree with you that when I changed the captureAndHeightFactor that the blocks got smaller, but did not go away.  I was hoping there was a way to smooth out the edges of the blocks so the boundries don't look so harsh.   I had been looking at flash.media.video in the flex 3.4 language reference and it talks about deblocking.  I copied the relevent text from the documentaiton at the end of this message.  I was wondering if there was something there I could use.   I'll play around with it some more.

Believe me I've been very vocal about the need for echo cancellation on the Flash Forums

Thanks for the help,

Eric

relevent text from flash.media.video

deblockingproperty
deblocking:int

Indicates the type of filter applied to decoded video as part of post-processing.      The default value is 0, which lets the video compressor apply a deblocking filter as needed.

Compression of video can result in undesired artifacts. You can use the       deblocking property to set filters that reduce blocking and,      for video compressed using the On2 codec, ringing.

Blocking refers to visible imperfections between the boundaries      of the blocks that compose each video frame. Ringing refers to distorted      edges around elements within a video image.

Two deblocking filters are available: one in the Sorenson codec and one in the On2 VP6 codec.      In addition, a deringing filter is available when you use the On2 VP6 codec.       To set a filter, use one of the following values:

  • 0—Lets the video compressor apply the deblocking filter as needed.
  • 1—Does not use a deblocking filter.
  • 2—Uses the Sorenson deblocking filter.
  • 3—For On2 video only, uses the On2 deblocking filter but no deringing filter.
  • 4—For On2 video only, uses the On2 deblocking and deringing filter.
  • 5—For On2 video only, uses the On2 deblocking and a higher-performance      On2 deringing filter.

If a value greater than 2 is selected for video when you are using      the Sorenson codec, the Sorenson decoder defaults to 2.

Using a deblocking filter has an effect on overall playback performance, and it is usually      not necessary for high-bandwidth video. If a user's system is not powerful enough,       the user may experience difficulties playing back video with a deblocking filter enabled.


Avatar

Former Community Member

Hi Eric,

Thanks for pointing the deblocking info. I will try to verify how the deblocking works and accordingly put it in our Subscriber in next release coming very soon so that you can use the API to set it.

I learnt that player by default does support the priority of Audio packets over video. We on our side do not change any priority.

Thanks

Hironmay Basu