Jump to content
gqsun

support for AVS+ video codec

Recommended Posts

gqsun

hi,

 

thanks for great software and I am a registered user of DVBViewer pro.

 

in China, just a few days ago, the first HD channel encoded in AVS+ video codec is broadcasted on chinasat 6a (125E)

 

It's a 3D HDTV channel, and there will be 4 more HD AVS video codec channels announced in the next month, and a transition from h.264 to AVS is also annouced and may happen in the next year.

 

Can DVBViewer support this in the future? looking forward it ! thank you very much.

 

attached picture is ts-editor screen shot of this channel, it is recognized as an audio channel in DVBViewer channel scan now.

 

post-137337-0-82577800-1364011610_thumb.png

Share this post


Link to post
Griga

Can DVBViewer support this in the future?

Don't know. We can try...

 

Can you provide a TS sample? Record it with TransEdit. It should contain video, audio, PAT, PMT and SDT.

 

Do you know

 

- if specifications about AVS+ and the embedding in transport streams are available?

 

- if there is a DirectShow video decoder that is able to decode AVS+?

 

That is basically what we would need for a start...

Share this post


Link to post
gqsun

hi,

 

thanks for quick response. I recorded a 3mib file, where should I send it to?

I can't attache more than 512k of file in the forum

Share this post


Link to post
gqsun

hi,

 

also I think the decoder is included in ffdshow, known as "chinese avs".

Share this post


Link to post
Griga

I recorded a 3mib file, where should I send it to?

3 MB will be enough for a first check, but if we find a possibility to make video playback work, a longer sample (approx. 10 seconds) may be required.

 

For upload please read the personal forum message that I have sent to you.

Share this post


Link to post
gqsun

hi,

 

the sample had been uploaded, and a private msg with resource links is also sent.

thanks, and if you need longer sample I will upload it

Share this post


Link to post
Griga

Thanks.

The sample enabled to add AVS video detection in TransEdit (see screenshot below). That was the easy part :) The stream_type in the PMT is 0x42. I don't know if it already found its way into the ISO 13818-1 specifications, but I suppose it is a unique ID because I have never seen it before in a TS.

The AC3 audio stream is a bit odd, because the PES packet_start_code_prefix and stream_id are 00 00 01 C0, which is ok for MPEG or AAC audio, but not for AC3. According to the ISO and DVB specifications it should be 00 00 01 BD (private_stream_1). The wrong stream_id does not prevent playback in DVBViewer and TransEdit, but may cause other problems - see here. Maybe you can inform the broadcaster about it.

Making the video play will be harder. According to Wikipedia VLC is able to play AVS, but no luck so far. I guess for testing video playback a longer sample (about 10 seconds) will be necessary. Can you upload another one?

Here are the links that I got via PM, for everybody who wants to join the discussion:

avs.org: http://www.avs.org.cn/fruits/en/softList.asp
DirectShow filters: http://sourceforge.net/projects/avsdshow/

Zwischenablage01.png

Share this post


Link to post
gqsun

thank, I am uploading new ts file (20mb) and should be done in a few minutes.

 

I am afraid that maybe we can't find an avs+ (for hd) video decoder on the internet, I tried the directshow filter I found, and use a graph edit like program to build a graph but the video decoing doesn't work.

 

maybe we will need to wait till there is a decoder for it, but it is always good to get ready for it... thanks!

Share this post


Link to post
Griga

Thanks, sample received, I will write more later.

Share this post


Link to post
Griga

I am afraid that maybe we can't find an avs+ (for hd) video decoder on the internet,

 

Looks like there are two problems:

 

- avs+ is a different thing than avs. It seems to be a new extended standard for HD and 3D content, as I can read here. I can't find anything that plays it. My VLC version simply crashes when I try to play the sample.

 

- avs in a DVB transport stream may imply different / additional data structures or headers that are not known to players.

 

Are there broadcasts in your region using normal avs (without +)? I think beginning with basic avs would be more promising than avs+.

Share this post


Link to post
gqsun

hi,

thanks for helping.

I will reply/post again if I see any decoder out there in the near future, and currently there are other satellites which broadcast avs streams but I don't have access to it.

Share this post


Link to post
Derrick

I don't think we'll ever see AVS in countries where ETSI or ATSC define standards o:)

Development of AVS was initiated by the government of the People's Republic of China. Commercial success of the AVS standard would not only reduce China's royalty/licensing payments to foreign companies, it would presumably earn China's electronics industry recognition among the more established industries of the developed world, where China is still seen as an outlet for mass production with limited indigenous design capability.

Share this post


Link to post
SatDream

There is recently one AVS+ decoder 3.0 complied by somebody that could play AVS+ VIDEO with video and sound, by the use of the MPC-HC with the use of the special LAV video splitter. I have tried these that works and play AVS+ VIDEO on PC, although not so smooth with fast action scene.

Share this post


Link to post
Griga
AsiaSat 6A 3751 H 07-21 22-41-08.zip 1.13 GB

 

The site prompts me to install a "browser extension" for downloading. That's something that will never ever happen.

Share this post


Link to post
Derrick

I could download the recording with Chrome. Dunno how to proceed with the filters from the AVSRelease. Transedit does recognize the stream type as AVS but of course only the audio track works in preview. Same with VLC. A screen shot from AVSRelease:

AVS-TS流文件在DVBViewer播放.png

 

Snap457.png

 

Share this post


Link to post
weisskreuz

I could download the recording with Chrome. Dunno how to proceed with the filters from the AVSRelease. Transedit does recognize the stream type as AVS but of course only the audio track works in preview. Same with VLC. A screen shot from AVSRelease:

attachicon.gifAVS-TS流文件在DVBViewer播放.png

 

attachicon.gifSnap457.png

 

You can use the AVSPlusPlayer replay it, but the decoder is not complete

Share this post


Link to post
Griga

Thanks. Now I managed to download everything without problems.

 

Can you tell me more about the LAV Filters in the AVSRelease\Filters subdirectory? Can they be used for AVS decoding? Are the filters builds from the LAV author or special builds modified by someone else for AVS?

 

I would at least need an AVS Media Subtype GUID for connecting the DVBViewer Filter (required for live TV playback) to an AVS video decoder.

Share this post


Link to post
weisskreuz

I find this + AVS decoder on the Internet, it seems that is not fully functional version. Using avsplayer replay AVS + video must be installed LAV decoding. Perhaps professionals can find the answer from Google.

Edited by weisskreuz

Share this post


Link to post
SatDream

Hi, the AVSRelease filters coud actually decode the AVS+ video.with normal video player.

No need to use the avsplayer included.

The method introduced by the compiler for this avs+ decoder 3.0 is like this:

Open the filter folder

Run the register.bat with administrator right (mouse right click) to register the specially complied LAV filters provided by the AVSRelease filters to windows\system32.

The content of the register.bat is to register following special LAV filters.

cd /d %~dp0

regsvr32 LAVAudio.ax
regsvr32 LAVSplitter.ax
regsvr32 LAVVideo.ax

 

These have been tested with MPC-HC (Media player Classic-Home center 32bit version.) (Not working with 64 bit version)

You have to replace the MPC-HC LAV filters with the filter packs inside the AVSRelease files. (I just put all the files to MPC-HC LAV filter folder for replacement.

 

I have also tried with DVBViewer to play back AVS+ video after registering the special LAV fiters, it only works for up to version 4.8.0.1 with 32 bit Windows 7. (Not working for DVBViewer with higher version than 4.8.0.1) (I have saved some previous versions of DVBViewer since I brought the software.)

 

Actually the AVSRelease filter packs could work in most video player like potplayer, only to select the filters to use LAV filters for playing back and replace original LAV filter with the AVSRelease LAV filters.

 

The problem with DVBViewer for realtime decoding the AVS+ live stream is probably is as you have suggested for connecting the DVBViewer Filter (required for live TV playback) to an AVS video decoder.( AVSRelease LAV filters) (As at present, DVBViewer source filter could not select external filter for realtime live TV playback, only palyback mode for recorded video could select these filters for playing back.) If DVBViewer could allow source filter to select these special LAV filter for realtime decoding the AVS+ live stream, these could be tried.

 

In addition, may require about 1sec lag time to decode the AVS+ video by DVBViewer once play is pressed. (for 2500K CPU)

 

I have also tried to live TV playback with DVBViewer, first of all, I have to use channel editor to manually add the correct VPID to the respective channel, as these AVS+ channel could not be correctly recognised by Transeditor for the VPID, these become "0" and grouped under radio. After descrambling, I could only see grey screen with audio for live AVS+ TV channel playback. But when recorded these live TV playback (already no preview as become grey screen with audio, I could correctly play back these recording with DVBViewer and MPC-HC etc with the special LAV filters.

 

Hope Griga could work tthrough the way for live AVS+ TV playback. (maybe with some time delay to allow for slow CPU decoding).

 

Thanks.

Share this post


Link to post
SatDream

I have also tried other dvbplayer programs whether could play the AVS+ video, all failed but only DVBViewer with version up to 4.8.0.1.

DVBViewer latest version and other version up could not play the AVS+ video with the special LAV filters by AVSRelease. It seems only works for 32 bit windows and systems.

 

There is one other dvbplayer that could play back the AVS+ video with the special LAV filters, but that dvbplayer could not scan all the channels for satellite 6A. Only resulting in few channels scanned for 6A, as this program has no support for 16-QAM modulation!

Share this post


Link to post
gqsun

hi,

 

After waiting for such a long time, we finally see a little hope to get this working.

I tried the filters, it did work, even on 64 bit windows.

 

the required procedures to congiure these filters are:

1. register the filters (by running register.bat)

2. in dvbiewer, change all the mpeg2 decoder to LAV decoder, because this filter is a modified version of LAV

 

now, We have some problems that need DVBViewer dev guys to help.

 

1. to play the avs+ video inside DVBViewer, you have to do one more thing, we have to disable DVBViewer filter for .ts file, once you disable it, video plays.

2. obviously we do not want to play avs+ video by DVBViewer, we want to watch satellite tv, but the problem is the DVBViewer filter, we don't know how to disable it. or if DVBViewer dev can updates it, it maybe able to split avs video

3, there is a proof that if we use the modified lav splitter, video playback works, I tried graphedit, and the video plays well, it uses modified lav splitter

4. we also have problem in channel scan and transedit, it must recognize AVS+ video stream pid, otherwise we have to manually enter it (DVBViewer says it's 0)

 

with the above moniro updates in DVBViewer we'll be able to watch avs+ satellite tv in china.

I am a registered user of DVBViewer and I recommend everyone I know to buy it. I really hope DVBViewer dev can help us.

 

thank you.

 

and of course, I can provide ts file if needed again.

Share this post


Link to post
Griga

but the problem is the DVBViewer filter, we don't know how to disable it. or if DVBViewer dev can updates it, it maybe able to split avs video

 

I would at least need an AVS Media Subtype GUID for connecting the DVBViewer Filter (required for live TV playback) to an AVS video decoder.

 

because this filter is a modified version of LAV

 

Do you know where the source code is available? It contains the information that I need. AFAIK it must be available because of the LAV GNU GPL v2 licence.

 

Anyway, I will contact the LAV author and ask him if he knows something about the internal handling of AVS+.

Share this post


Link to post
gqsun

hi,

 

I didn't see any source code released in the file available on the internet. however I contacted the author today via QQ (chinese messenger software)

he is also an user of DVBViewer and he says he also wish DVBViewer dev can solve this problem.

 

he mentions something about FOURCC ID, he says that he needs to communicate with you guys and have an mutually agreed FOURCC ID.

 

anyway I can help to forward any question you have to him if you need.

 

(there is also an email address included in the decoder zip file, maybe you can use that to contact him)

Share this post


Link to post
satfan

 

 

 

Do you know where the source code is available? It contains the information that I need. AFAIK it must be available because of the LAV GNU GPL v2 licence.

 

Anyway, I will contact the LAV author and ask him if he knows something about the internal handling of AVS+.

I think you contact the author, also won't have the answer.

Share this post


Link to post
Griga

Sorry, I'm a bit late... but I can give you a clear answer now:

 

Provisional AVS+ support in the DVBViewer source filter (without format detection, just demuxing the data and passing it on) would be possible if I knew which media subtype is required for connecting to an AVS+ Decoder. Additionally It would take measures like integrating the new video type in the DVBViewer channel data and such - some work, but no big deal.

 

However, it is quite obvious in this case that someone is using the LAV Filters framework for his own purpose without respecting the GNU Public Licence under which it has been released and without giving the original LAV author a chance to integrate the extensions into the main line of the project. I will not support this and I will not cooperate with it. I will only do it under the condition that the LAV licence is respected and the changed source code is made publicly available.

 

That's all... nothing more to say about it at the moment.

Share this post


Link to post
gqsun

hi, I passed your reply to the decoder author, he says that he has no intension to violate the GNU license, he is just trying to make sure his final work will work and connect with DVBViewer.
now he says that he can just make a decoder filter similar to xvid decoder and will not use lav framework. will this be good for you?

 

since he is not going to make a splitter, his decoder shall only work with DVBViewer's source filter, which makes it a DVBViewer exclusive feature.. I think it's very good for both developers and users of DVBViewer.

 

and the media subtype guid is:

 

 

DEFINE_GUID(MEDIASUBTYPE_AVS, 0x00535641, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
DEFINE_GUID(CLSID_SK_AVS_DECODER, 0x9379FF16,0x5C33,0x9E15,0x4D,0x91,0xA4,0x11,0x08,0x73,0x9E,0x72);
#define FOURCC_AVS mmioFOURCC('A','V','S',' ')
#define FOURCC_AVSP mmioFOURCC('A','V','S', '+')
#define FOURCC_AVS0 mmioFOURCC('A','V','S', 0)
#define FOURCC_AVS1 mmioFOURCC('A','V','S', '1')


#define FOURCC_avs mmioFOURCC('a','v','s',' ')
#define FOURCC_avsp mmioFOURCC('a','v','s', '+')
#define FOURCC_avs0 mmioFOURCC('a','v','s', 0)
#define FOURCC_avs1 mmioFOURCC('a','v','s', '1')


DEFINE_GUID(CLSID_MEDIASUBTYPE_IYUV, 0x56555949, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);


#define SK_AVS_CODEC_NAME L"SK AVS+ Decoder"

const AMOVIESETUP_MEDIATYPE sudInputPinTypes[] =
{
&MEDIATYPE_Video, // Major type
&MEDIASUBTYPE_AVS // Minor type
};

const AMOVIESETUP_MEDIATYPE sudOutputPinTypes[] =
{
{ &MEDIATYPE_Video,
&MEDIASUBTYPE_NULL }
};


const AMOVIESETUP_PIN psudPins[] =
{
{
L"Input", // String pin name
FALSE, // Is it rendered
FALSE, // Is it an output
FALSE, // Allowed none
FALSE, // Allowed many
&CLSID_NULL, // Connects to filter
L"Output", // Connects to pin
1, // Number of types
&sudInputPinTypes[0] // The pin details
},
{
L"Output", // String pin name
FALSE, // Is it rendered
TRUE, // Is it an output
FALSE, // Allowed none
FALSE, // Allowed many
&CLSID_NULL, // Connects to filter
L"Input", // Connects to pin
1, // Number of types
sudOutputPinTypes // The pin details
}
};


const AMOVIESETUP_FILTER sudSKAVSDecoder =
{
&CLSID_SK_AVS_DECODER, // Filter CLSID
SK_AVS_CODEC_NAME, // Filter name
MERIT_PREFERRED, // Its merit
2, // Number of pins
psudPins // Pin details
};
Edited by gqsun

Share this post


Link to post
Tjod

In short if you use GPL source code in you program (compiled in or as linked library .dll).
The result is the you program must be GPL as well. If not you program is a copyright violation, and therefore illegal.

If a program is licensed under the GPL. You have to provide the source code to everyone whom you have given the program.
https://www.gnu.org/licenses/gpl-faq.en.html

And if you change a program you may have to change the name of the new program. Because the name is not covered by the license.

The best way to improve GPL software is to provide the changes back to the original program/project. So that every one can use the original and there is no need for a special version.


To come back to this topic. if it is not possible, for everyone how is able to download the modified LAV version to get the corresponding source code. The version is illegal and I will remove all links to it from the forum and close all topics about it.


If you go to a shop, you are aloud to take things with you if you pay for them.
And for GPL source code you are aloud to us it, if you put your program under GPL as well.

And if you break the rules, you are stealing in both cases.

Share this post


Link to post
CiNcH

As far as I understood it, the final result will not contain nor link to GPL code as he wants to create his own DirectShow wrapper for the decoder. You of course never know how much GPL code is inside some program. Even CyberLink could have LAV/ffmpeg code inside their filters ;) .

 

However I would also like to see something like that go OS and I wonder why this is not done.

Share this post


Link to post
Tjod

If I'm correct, you need a modified LAV version. You can't use the official LAV version for that.


And parts of ffmpeg are LGPL (and BSD like licenses) so you can use it in a library, if you remove all GPL parts. If you go into the details it can become complicated. But if you distribute a modified version it is clear.

And on the other hand, if other people do shoplifting. Does this make shoplifting then for you legal?

Share this post


Link to post
CiNcH

You should read his posting once again... In a future version, he neither wants to use ffmpeg nor LAV.

Share this post


Link to post
gqsun

calm down guys!

 

the author says he will not use the lav framework, he will make a NEW decoder filter. I don't understand why there is a problem.

 

you can REMOVE the link of the old decoder anyway, that is not the 'final result' we are talking about. that was only a TECH DEMO to prove that the concept can work.

 

however this concept DIDN'T work because the DVBViewer must split avs ts and hand it over to decoder filter.. (I am sorry if I say anything wrong, I am not a tech guy)

 

we want DVBViewer to split avs ts correctly, and the author can begin to make his 'new decoder filter' again from scratch, or making use of some legal stuff as a basis.

 

:D

Share this post


Link to post
gqsun

Anyone?

I stated it clearly, the author will not use the lav open source stuff and provided the media subtype guid, I guess someone can update the DVBViewer filter to handle this?

Share this post


Link to post
CiNcH

I don't think it will work that way. The current solution won't be supported as stated. As soon as "you" deliver something practical, the solution might be re-evaluated and considered.

Share this post


Link to post
党一茗

Hello, I am also DVBViewer genuine users. I am willing to support AVS + decoding DVBViewer make some contribution. What Will the administrator needs?

Edited by 党一茗

Share this post


Link to post
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...