PDA

View Full Version : HD MPEG-4 / H264 on Astra 19.2 FTA Premiere HD


eb
3rd June 2005, 17:00
On Astra 19.2 11915H video PID 02FF, audio 0304.
Video is broadcasted as MPEG-4 /H264 tests, 1920x1080

eb

SeeMoreDigital
3rd June 2005, 17:18
And so it begins!

It looks like BskyB has been true to it's word and has started its HD Mpeg4 AVC trials in June... Sky should also be testing 1280x720 progressive too, some of them paired with their 1080i content.

I have not got round to re-installing my DVB-S card at the moment, so if anybody finds some 720p content, can they check the frame rate please?


Cheers

eb
4th June 2005, 11:39
http://img177.echo.cx/img177/2402/prehd10nz.jpg (http://www.imageshack.us)

SeeMoreDigital
4th June 2005, 11:55
Just in case anybody was wondering.... BskyB is the majority shareholder of Premiere ;)


Cheers

nexx
4th June 2005, 12:40
Nice, what bitrate do they intend to use?

Make me jealous of the MPEG2 12mbps 1080i we have here :(

eb
4th June 2005, 12:53
1 minute record ~ 120MB.

SeeMoreDigital
4th June 2005, 13:03
1 minute record ~ 120MB.That's 2 MB per second or 16Mbps (16,384Kbps).... I must admit I was expecting less than half that!


Cheers

eb
4th June 2005, 13:37
Very early tests on Euro1080 started with 185MB/minute, 3 first days, and latter and now stabilized on 135MB/min.
Up today I don't know what they changed, but quality was super.

eb

nexx
4th June 2005, 15:22
That's 2 MB per second or 16Mbps (16,384Kbps)....

Ok now I'm really jealous :(
Care to upload some sample files?

illCP
4th June 2005, 17:39
@eb:

The Screenshot looks like you managed to stream h264 ? If so, how did you do it ?

I've got a Technisat SkyStar 2 and tried it with DVBViewer and ProgDVB, but nothing happens. DVBViewer doesn't even let me click on the "Record"-Button, ProgDVB seems to try to stream but the resulting file is absolutely empty (I don't see or hear anything at all in the "preview").

I think the common programs are for streaming "normal" DVB (MPEG-2) only, but MPEG-4 seems impossible...

Does anybody have a clue about this ? Perhaps a DirectShow Filter Graph for ProgDVB ?

eb
4th June 2005, 18:00
Author of SkyView, marfi prepared special version of SkyView for this tests.
http://republika.pl/skyview/SkyAVC_MPG4.zip
Using GraphEdit try to build graph acc. to http://republika.pl/skyview/mpg4.JPG
Set DISABLE MPEGDETECT in OPTIONS

So it is possible to decode this H264 on live , on my Athlon at 2000MHz it was ~10fps.

Before this special edition of SkyView I used normal SkyView edition to record to .ts seting PIDs manually. video PID in decimal 767.

eb

EDIT THis special version it is special filter SkyAVC.ax working only with HDTV MPEG-4 H264.

illCP
4th June 2005, 19:35
:thanks: Thanks a lot ! :)

It's not working yet, but i'll keep trying it this way.

illCP
5th June 2005, 13:28
Hooray - it's working :) - nearly...

I don't hear any sound and get about 0,5 fps @ 1733 MHz - but I can stream it.

I didn't find a way to stream TS - only PVA and MPG. I've got a ~300 MB stream of ~2 Minutes in a PVA-File now, but how do I demux the AVC- and the AC3-stream from it ?

PVAStrumento and ProjectX are both doing nothing at all - I think they are just searching for MPEG-2 streams inside and finding "trash" (AVC) only...

Is there a way to demux it properly ?

SeeMoreDigital
5th June 2005, 13:30
Can anybody here provide a short high-def AVC/AC3 sample please?


Cheers

eb
5th June 2005, 13:43
illCP congratulations,
Use GraphEdit to play .ts ./switch off clock under GRAF
For live watching change settings in Moonlight/ Mainconcept
I have 200MB working sample, I don't want to cut it.
If someone have space to upload I can do it.

eb

EDIT I hear only silence as audio, not sure what kind of audio is it? 384kb/s.
To demux best is bbtool1.9

illCP
5th June 2005, 14:43
Use GraphEdit to play .ts ./switch off clock under GRAF
I don't know how to stream .ts with SkyView - i've got a .pva-File.

I tried to open it with GraphEdit and "Render Media File" ("Use Clock" in "Graph" switched off) - see attachment. If I click on the play button, the ActiveMovie-Window remains black.
I think it has to remain black, because the MainConcept MPEG Video Decoder is used... and it surely can't decode H.264.

So I tried to remove the MainConcept-Filter and replace it with the Moonlight H.264-Filter or the ffdshow-Decoder - both don't work:

These filters cannot agree on a connection. Verify type compability of input pin and output pin.

I've only got a poor knowledge about filterchains and GraphEdit...

After this, I tried to demux the .pva with bbdmux like this:
bbdmux 01.pva 0xE0 test.264
This seems to work; bbdmux says 0xE0 is Video Stream 0. There's also a "private Stream" 0xBD - this has to be the AC3-Stream. I also tried to demux this stream:

bbdmux 01.pva 0xBD test.ac3
The MediaPlayer Classic opens it, but it remains silent.

What can I do with the demuxed video stream ? I think this file (what I've called test.264) should be a raw H.264-Stream. MediaPlayer Classic can't open it...

I also tried to mux in into a MP4-container with YAMB, but nothing seems to happen. Here's the log:

[15:48:13] : Muxing started...
[15:48:13] : Importing & Writing streams...
[15:48:13] : Muxing finished completely.

The problem is that nothing comes out - the file "test.mp4" isn't created; YAMB does nothing.

bond
5th June 2005, 14:56
I think it has to remain black, because the MainConcept MPEG Video Decoder is used... and it surely can't decode H.264.
mainconcept also offers h.264 decoding included in their demo encoder:
http://www.mainconcept.com/h264_encoder.shtml

you can also try playing the file in mplayer or videolan (you can also try to demux with these tools to raw, and also try ffmpeg)

What can I do with the demuxed video stream ? I think this file (what I've called test.264) should be a raw H.264-Stream. MediaPlayer Classic can't open it...
if you want to know if its a correct avc stream run the h264_parse tool from mpeg4ip over it, which you can get from here (http://www.aziendeassociate.it/cd.asp?dir=/mpeg4iptools) (latest version is available in 1.3.1 mpeg4iptools package)

i hope you know how to handle commandline tools, if yes you can try muxing the raw stream also with mp4creator into .mp4, which is also in that tools package

I also tried to mux in into a MP4-container with YAMB, but nothing seems to happen.
yamb should be stable but you might want to try muxing with mp4box (yamb is a gui for mp4box) directly and see what it says

its available here (http://www.aziendeassociate.it/cd.asp?dir=/gpac/dev)

ps: you can also upload a small snip of the file (still in the container) maybe somewhere so others, like me, can also have a look

SeeMoreDigital
5th June 2005, 15:01
ps: you can also upload a small snip of the file (still in the container) maybe somewhere so others, like me, can also have a lookAgreed :D

eb
5th June 2005, 16:36
In SkyView there are two places to record to .ts stream
1/ in cache/multirecorder input manualy PIDs for video and audio you can record them as separate streams or as one .ts stream

2/ IN TSWriter > manual record - add PIDS manualy in position OTHER

see http://forum.doom9.org/showthread.php?p=526072#post526072


Playing with decoder settings when watching liveor playback.
Snapshot for making foto.
http://img177.echo.cx/img177/8673/hdpre19mo.jpg (http://www.imageshack.us)

eb

illCP
5th June 2005, 17:19
you can also try playing the file in mplayer or videolan
I never tried these before, but they're doing the following:

VLC does the same as MPC... nothing :D It seems to play something - the timeline moves, but nothing else happens.

MPlayer (omg, a CLI-Player...:D) does something...

I think it's best posting the whole Commandline:

First I tried to play the PVA-File:

C:\MPlayer>mplayer c:\01.pva
MPlayer 1.0pre7-3.4.2 (C) 2000-2005 MPlayer Team
CPU: Advanced Micro Devices Athlon 4 /Athlon MP/XP Palomino (Family: 6, Stepping
: 2)
Detected cache-line size is 64 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled with runtime CPU detection - WARNING - this is not optimal!
To get best performance, recompile MPlayer with --disable-runtime-cpudetection.

Cannot load font: c:/windows/fonts/arial.ttf
Playing c:\01.pva.
MPEG-PS file format detected.

Too many audio packets in the buffer: (4096 in 6275072 bytes).
Maybe you are playing a non-interleaved stream/file or the codec failed?
For AVI files, try to force non-interleaved mode with the -ni option.
MPEG: FATAL: EOF while searching for sequence header.
Video: Cannot read properties.
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3

Too many video packets in the buffer: (4096 in 8162455 bytes).
Maybe you are playing a non-interleaved stream/file or the codec failed?
For AVI files, try to force non-interleaved mode with the -ni option.
ADecoder init failed :(
ADecoder init failed :(
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders

Too many video packets in the buffer: (4096 in 8162455 bytes).
Maybe you are playing a non-interleaved stream/file or the codec failed?
For AVI files, try to force non-interleaved mode with the -ni option.
Unknown/missing audio format -> no sound
ADecoder init failed :(
Requested audio codec family [mad] (afm=libmad) not available.
Enable it at compilation.
Cannot find codec for audio format 0x50.
Read DOCS/HTML/en/codecs.html!
==========================================================================
Audio: no sound
Video: no video


Exiting... (End of file)


So it seems like MPlayer recognizes the PVA "correctly" as MPEG-PS and looks for MPEG-2 compression.

Afterwards I tried to play the stream I extracted with bbdmux:


C:\MPlayer>Mplayer c:\test.264
MPlayer 1.0pre7-3.4.2 (C) 2000-2005 MPlayer Team
CPU: Advanced Micro Devices Athlon 4 /Athlon MP/XP Palomino (Family: 6, Stepping
: 2)
Detected cache-line size is 64 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled with runtime CPU detection - WARNING - this is not optimal!
To get best performance, recompile MPlayer with --disable-runtime-cpudetection.

Cannot load font: c:/windows/fonts/arial.ttf
Playing c:\test.264.
H264-ES file format detected.
FPS not specified in the header or invalid, use the -fps option.
No stream found.


Exiting... (End of file)


So it can't determine the fps.

Next try:


C:\MPlayer>Mplayer -fps 25 c:\test.264
MPlayer 1.0pre7-3.4.2 (C) 2000-2005 MPlayer Team
CPU: Advanced Micro Devices Athlon 4 /Athlon MP/XP Palomino (Family: 6, Stepping
: 2)
Detected cache-line size is 64 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled with runtime CPU detection - WARNING - this is not optimal!
To get best performance, recompile MPlayer with --disable-runtime-cpudetection.

Cannot load font: c:/windows/fonts/arial.ttf
Playing c:\test.264.
H264-ES file format detected.
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm:ffmpeg (FFmpeg H.264)
==========================================================================
Audio: no sound
FPS forced to be 25.000 (ftime: 0.040).
Starting playback...
[h264 @ 009E3CB8]concealing 7560 DC, 7560 AC, 7560 MV errors
VDec: vo config request - 1920 x 1088 (preferred csp: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.76:1 - prescaling to correct movie aspect.
VO: [directx] 1920x1088 => 1920x1088 Planar YV12
aspect: Warning: no suitable new res found!
New_Face failed. Maybe the font path is wrong.
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
[h264 @ 009E3CB8]left block unavailable for requested intra mode at 0 5
[h264 @ 009E3CB8]error while decoding MB 0 5
[h264 @ 009E3CB8]concealing 8160 DC, 8160 AC, 8160 MV errors
[h264 @ 009E3CB8]concealing 7440 DC, 7440 AC, 7440 MV errors
[h264 @ 009E3CB8]concealing 8082 DC, 8082 AC, 8082 MV errors
[h264 @ 009E3CB8]left block unavailable for requested intra mode at 0 28
[h264 @ 009E3CB8]error while decoding MB 0 28
[h264 @ 009E3CB8]concealing 7489 DC, 7489 AC, 7489 MV errors
[h264 @ 009E3CB8]left block unavailable for requested intra mode at 0 29
[h264 @ 009E3CB8]error while decoding MB 0 29
[h264 @ 009E3CB8]concealing 8089 DC, 8089 AC, 8089 MV errors
[h264 @ 009E3CB8]illegal short term buffer state detected
[h264 @ 009E3CB8]concealing 7560 DC, 7560 AC, 7560 MV errors
[h264 @ 009E3CB8]illegal short term buffer state detected
[h264 @ 009E3CB8]concealing 8140 DC, 8140 AC, 8140 MV errors
[h264 @ 009E3CB8]illegal short term buffer state detected
[h264 @ 009E3CB8]concealing 7440 DC, 7440 AC, 7440 MV errors
[h264 @ 009E3CB8]illegal short term buffer state detected
[h264 @ 009E3CB8]concealing 8127 DC, 8127 AC, 8127 MV errors
[h264 @ 009E3CB8]illegal short term buffer state detected
[h264 @ 009E3CB8]concealing 7440 DC, 7440 AC, 7440 MV errors
[h264 @ 009E3CB8]illegal short term buffer state detected
[h264 @ 009E3CB8]concealing 8114 DC, 8114 AC, 8114 MV errors


MPlayer interrupted by signal 11 in module: decode_video
- MPlayer crashed by bad usage of CPU/FPU/RAM.
Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and
disassembly. Details in DOCS/HTML/en/bugreports_what.html#bugreports_crash.
- MPlayer crashed. This shouldn't happen.
It can be a bug in the MPlayer code _or_ in your drivers _or_ in your
gcc version. If you think it's MPlayer's fault, please read
DOCS/HTML/en/bugreports.html and follow the instructions there. We can't and
won't help unless you provide this information when reporting a possible bug.


A window pops up and shows strange colours for about five seconds, then it disappears - but sometimes you can see the "Premiere HD"-logo ! :D

I also tried it with "-fps 23,97" and "-fps 29,97" - nothing changes. Anyway Premiere should broadcast in PAL.

This one's the most informative: MPlayer seems to determine some (the most important) characteristics of the stream correctly: H264 ES in 1920 x 1088 YV12 - and you can see something from the "real" Picture; although only for a few Seconds :D

if you want to know if its a correct avc stream run the h264_parse tool from mpeg4ip over it, which you can get from here (latest version is available in 1.3.1 mpeg4iptools package)

h264_parse test.264
creates a loooooong list...;) Here's a cut out: (it's that long that I can't scroll up to the beginning in the Win2k Commandline)


Nal length 2299 start code 4 bytes
ref 3 type 1 Coded slice of non-IDR picture
first_mb_in_slice: 6720
slice_type: 0 (P)
pic_parameter_set_id: 0
frame_num: 38 (12 bits)
field_pic_flag: 0
pic_order_cnt_lsb: 77
Nal is part of last picture
Nal length 6 start code 4 bytes
ref 0 type 9 Access unit delimeter
primary_pic_type: 1
Nal length 136 start code 4 bytes
ref 3 type 1 Coded slice of non-IDR picture
first_mb_in_slice: 0
slice_type: 0 (P)
pic_parameter_set_id: 0
frame_num: 39 (12 bits)
field_pic_flag: 0
pic_order_cnt_lsb: 79
Nal length 2711 start code 4 bytes
ref 3 type 1 Coded slice of non-IDR picture
first_mb_in_slice: 1200
slice_type: 0 (P)
pic_parameter_set_id: 0
frame_num: 39 (12 bits)
field_pic_flag: 0
pic_order_cnt_lsb: 79
Nal is part of last picture


you can try muxing the raw stream also with mp4creator into .mp4, which is also in that tools package

This seems to work better than mp4box & YAMB:

C:\>mp4creator -create=test.264 test.mp4
mp4creator: Must specify frame rate when reading H.264 files
C:\>mp4creator -create=test.264 -rate=25 tst.mp4


If you specify the frame rate, you get a .mp4 file - and no error. So it seems the raw H.264 stream was correctly muxed in a MP4 container (?)

But neither the MediaPlayer Classic or VLC nor Mplayer is playing it... but nevertheless the MPC tries to decode it with ffdshow - I think that's a good sign :D

VLC plays a grey box with artifacts for a few seconds before it crashes.

Here's the MPlayer "log":

C:\MPlayer>mplayer c:\tst.mp4
MPlayer 1.0pre7-3.4.2 (C) 2000-2005 MPlayer Team
CPU: Advanced Micro Devices Athlon 4 /Athlon MP/XP Palomino (Family: 6, Stepping
: 2)
Detected cache-line size is 64 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled with runtime CPU detection - WARNING - this is not optimal!
To get best performance, recompile MPlayer with --disable-runtime-cpudetection.

Cannot load font: c:/windows/fonts/arial.ttf
Playing c:\tst.mp4.
ISO: File Type Major Brand: ISO/IEC 14496-1 (MPEG-4 system) v2
QuickTime/MOV file format detected.
--------------
MOV track #0: 253 chunks, 6320 samples
MOV: AVC decoder configuration record atom (37)!
Image size: 1920 x 1088 (24 bpp)
Display size: 1920 x 1088
Fourcc: avc1 Codec: 'V'
--------------
MOV: longest streams: A: #-1 (0 samples) V: #0 (6320 samples)
VIDEO: [avc1] 1920x1088 24bpp 25.000 fps 0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm:ffmpeg (FFmpeg H.264)
==========================================================================
Audio: no sound
Starting playback...


MPlayer interrupted by signal 11 in module: decode_video
- MPlayer crashed by bad usage of CPU/FPU/RAM.
Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and
disassembly. Details in DOCS/HTML/en/bugreports_what.html#bugreports_crash.
- MPlayer crashed. This shouldn't happen.
It can be a bug in the MPlayer code _or_ in your drivers _or_ in your
gcc version. If you think it's MPlayer's fault, please read
DOCS/HTML/en/bugreports.html and follow the instructions there. We can't and
won't help unless you provide this information when reporting a possible bug.


you might want to try muxing with mp4box (yamb is a gui for mp4box) directly and see what it says

its available here

Sorry, without a GUI that's too hard for me now... :(

ps: you can also upload a small snip of the file (still in the container) maybe somewhere so others, like me, can also have a look

How can I cut out something of it ? And what's the largest filesize for attachments here ?
Or does anybody have an FTP-server or webspace for uploading ?


For all german speaking people:

We've got a thread in the german Doom9 Gleitz board (http://forum.gleitz.info/showthread.php?t=23244) about this.

bond
5th June 2005, 17:37
I never tried these before, but they're doing the following:

VLC does the same as MPC... nothing :D It seems to play something - the timeline moves, but nothing else happens.

This one's the most informative: MPlayer seems to determine some (the most important) characteristics of the stream correctly: H264 ES in 1920 x 1088 YV12 - and you can see something from the "real" Picture; although only for a few Seconds :D
ok this is propably caused as you might use outdated builds of videolan/mplayer

the latest mplayer can be get here (http://www.aziendeassociate.it/cd.asp?dir=/mplayer), videolan here (http://vthr.via.ecp.fr/~videolan/build/win32/)

h264_parse test.264
creates a loooooong list...;) Here's a cut out: (it's that long that I can't scroll up to the beginning in the Win2k Commandline)
to write the text into a .txt use the following commandline:
h264_parse test.264 > log.txt
but your excerpt shows that its indeed a correct raw h.264 stream (which was propably wrapped in a mpeg-ps container as it uses acess unit delimiters)

can you post the first lines outputted, showing the Picture parameter set and sequence paramter set, this will tell what features the stream uses

If you specify the frame rate, you get a .mp4 file - and no error. So it seems the raw H.264 stream was correctly muxed in a MP4 container (?)

But neither the MediaPlayer Classic or VLC nor Mplayer is playing it... but nevertheless the MPC tries to decode it with ffdshow - I think that's a good sign :D

VLC plays a grey box with artifacts for a few seconds before it crashes.
thats propably because of the same reason why they cant play the raw stream: outdated versions

Sorry, without a GUI that's too hard for me now... :(
hey you seem good at using commandline ;)

try the following with mp4box:
MP4Box -add test.264 -fps 25 mp4box.mp4

How can I cut out something of it ? And what's the largest filesize for attachments here ?
Or does anybody have an FTP-server or webspace for uploading ?
actually i dunno how to cut mpeg-ps, but you can cut avc-in-mp4 with mp4box (and also in yamb)

illCP
5th June 2005, 18:43
ok this is propably caused as you might use outdated builds of videolan/mplayer

the latest mplayer can be get here, videolan here

Indeed - I didn't use the newest builds, but I think they weren't too old. I updated to the versions you linked to - anyway, unfortunately nothing changed.

to write the text into a .txt use the following commandline:
[...]
can you post the first lines outputted, showing the Picture parameter set and sequence paramter set, this will tell what features the stream uses



C:\>h264_parse test.264 > log.txt
couldn't find start code in buffer from 0


"Couldn't find start code in buffer from 0" - I think this means picture parameters etc. couldn't be found ? I don't see anything about this in the logfile...

Here are the first lines of the logfile:

Nal length 6 start code 4 bytes
ref 0 type 9 Access unit delimeter
primary_pic_type: 1
Nal length 472 start code 4 bytes
ref 3 type 1 Coded slice of non-IDR picture
first_mb_in_slice: 0
slice_type: 0 (P)
pic_parameter_set_id: 0
frame_num: 0 (4 bits)
field_pic_flag: 0
pic_order_cnt_lsb: 2
Nal length 5955 start code 4 bytes
ref 3 type 1 Coded slice of non-IDR picture
first_mb_in_slice: 600
slice_type: 0 (P)
pic_parameter_set_id: 0
frame_num: 0 (4 bits)
field_pic_flag: 0
pic_order_cnt_lsb: 2
Nal is part of last picture


The same as last time, isn't it ?

thats propably because of the same reason why they cant play the raw stream: outdated versions

No... in the newest version of MPlayer you can see a little bit more of the "original" picture, but it's still trash full of artifacts and strange colours until it crashes. The newest VLC behaves nearly exactly like the older version.

hey you seem good at using commandline
Thanks :) I began with a 286 - this times GUI's were rare stuff :D But sometimes it's just too hard... or I'm just too lazy ;):D

try the following with mp4box:

Code:
MP4Box -add test.264 -fps 25 mp4box.mp4



Error parsing NAL unit
Error: BitStream Not CompliantError importing test.264: BitStream Not Compliant

actually i dunno how to cut mpeg-ps, but you can cut avc-in-mp4 with mp4box (and also in yamb)
OK, i'll try that, thanks.

eb
5th June 2005, 19:12
I'll try to upload some .ts sample on my web, problem is that I set back my antena to HotBird13.

More pictures
http://img177.echo.cx/img177/5845/hdpre73rt.th.jpg (http://img177.echo.cx/my.php?image=hdpre73rt.jpg)

http://img177.echo.cx/img177/7481/hdpre68ry.th.jpg (http://img177.echo.cx/my.php?image=hdpre68ry.jpg)

http://img177.echo.cx/img177/2954/hdpre40os.th.jpg (http://img177.echo.cx/my.php?image=hdpre40os.jpg)

http://img177.echo.cx/img177/2954/hdpre40os.jpg (http://www.imageshack.us)

illCP
5th June 2005, 19:45
OK, I splitted the .mp4-File that I created from the probably raw AVC stream into small pieces with MP4Box/YAMB - but the board's limit seems to be 200 kB for all extensions... it doesn't even work if I rename it to .mp4.zip.

If anybody got webspace or a ftp server I can upload something.

eb
5th June 2005, 20:01
Try to use my web ca. 50MB
ftp://www.eb.enterpol.pl
user name www.eb.enterpol.pl
password eb

eb

bond
5th June 2005, 20:16
Indeed - I didn't use the newest builds, but I think they weren't too old. I updated to the versions you linked to - anyway, unfortunately nothing changed.

"Couldn't find start code in buffer from 0"
this error means nothing, it happens very often

- I think this means picture parameters etc. couldn't be found ? I don't see anything about this in the logfile...

Here are the first lines of the logfile:

The same as last time, isn't it ?
this are the first lines it printed?

if yes than there is a very important part missing in the stream: the sps and pps (picture parameter set, etc...)

this is normally added only on the keyframes: search in your stream till you find (I) or so indicating a keyframe, there you should also find the sps/pps

i assume you can also not play the stream, because it doesnt start with a keyframe and therefore doesnt signal the important sps and pps needed right from the start

i assume that this happens because of the capturing process which of course doesnt necessarily start with a keyframe

also as you can see mp4box doesnt like the stream


actually it should be possible to cut the beginning of the raw stream away till you get to the first keyframe from which you can start correctly, but this would need to be done in a hexeditor and i dunno how to identify a keyframe there
maybe i can find someone who can tell me this

bond
5th June 2005, 20:32
illCP, two things:

1) if you can upload a bigger sample to eb's ftp (thx!) than plz upload this .pva file (or how it was called) and not the raw stream or the .mp4, cause who knows if the stream has been handled correctly with what you did till now and is not fucked up already

2) if you want to try your luck on correcting the raw stream try the following:
open the raw stream in a hexeditor and search for 00 00 00 01 67, thats the SPS, a stream should start with
cut all values before this away (little bit after that there should also be 00 00 00 01 68 (thats the PPS) and after that 00 00 00 01 65 (thats the keyframe))

once you have done this, the stream should start correctly with the SPS and should be playable/muxable

eb
5th June 2005, 20:45
I am uploading 20MB samle cutted with window commander /split file/ from my 200MB sample, it is working with graph presented above, silent audio maybe aac?.
Link will be presented after upload is finished..

eb
EDIT link
ftp://www.eb.enterpol.pl:eb@www.eb.enterpol.pl/1.001
Information data about this sample

Summary:

MPEG Transport Packets = 111551
PID 0000, Program Association Table packets = 54, total bytes = 9936
PID 0062, Other packets = 53, total bytes = 9752
PID 02FF, Video stream 0 packets = 108184, total bytes = 19869489
PID 0304, Private Stream 1 packets = 2981, total bytes = 508784

PACKET #108608, sync_byte = 47
stream_id = BD Private Stream 1, packet #2902 PTS = 12550472.466667 ms

PACKET #108609, sync_byte = 47
stream_id = E0 Video Stream 0, packet #105331

SeeMoreDigital
5th June 2005, 20:52
I think I'll re-install my DVB-S card tomorrow to see if I can capture some Mpeg4 AVC / AC3 streams!

So please stand by for my "technical support" questions ;)


Cheers

bond
5th June 2005, 22:28
I am uploading 20MB samle cutted with window commander /split file/ from my 200MB sample, it is working with graph presented above, silent audio maybe aac?.
Link will be presented after upload is finished..

eb
EDIT link
ftp://www.eb.enterpol.pl:eb@www.eb.enterpol.pl/1.001
Information data about this sample
ok i looked at it with the following findings:

- container is mpeg transport stream (so not program stream as in illCP's sample)
- audio is stereo ac3, but i indeed dont hear anything when playing it
- video is main profile avc video
it uses p-frames only, multiple slices, loop, cabac, 2 reference frames and seems to be interlaced

the method i proposed (searching till the first SPS and cutting everything before it away) works. i could get a playable and muxeable (with both mp4box and mp4creator) stream. playback works fine with nero's dshow filters, but strangely i cant get it to play with mplayer (maybe it doesnt handle interlaced??)

eb
5th June 2005, 23:00
For those having problems to see h264 I transcoded above sample to 960x544 .avi (3MB)

ftp://www.eb.enterpol.pl:eb@www.eb.enterpol.pl/hdp1+1.avi
EDIT Wrong AR was set, it should be 4:3 as sample below

using graph as below
ftp://www.eb.enterpol.pl:eb@www.eb.enterpol.pl/hdp1+1AR-OK.avi

http://img177.echo.cx/img177/1368/hdpre102qz.jpg (http://www.imageshack.us)

SeeMoreDigital
5th June 2005, 23:24
...playback works fine with nero's dshow filters, but strangely i cant get it to play with mplayer (maybe it doesnt handle interlaced??)What file extension did you give eb's sample so it could play with Nero's filters?


Cheers

illCP
6th June 2005, 12:19
this are the first lines it printed?

if yes than there is a very important part missing in the stream: the sps and pps (picture parameter set, etc...)

this is normally added only on the keyframes: search in your stream till you find (I) or so indicating a keyframe, there you should also find the sps/pps

i assume you can also not play the stream, because it doesnt start with a keyframe and therefore doesnt signal the important sps and pps needed right from the start

i assume that this happens because of the capturing process which of course doesnt necessarily start with a keyframe

You're right: it's not at the beginning, it's somewhere in between:


Nal length 6 start code 4 bytes
ref 0 type 9 Access unit delimeter
primary_pic_type: 0
Nal length 17 start code 4 bytes
ref 3 type 7 Sequence parameter set
profile: 77
constaint_set0_flag: 0
constaint_set1_flag: 1
constaint_set2_flag: 0
constaint_set3_flag: 0
level_idc: 40
seq parameter set id: 0
log2_max_frame_num_minus4: 8
pic_order_cnt_type: 0
log2_max_pic_order_cnt_lsb_minus4: 5
num_ref_frames: 2
gaps_in_frame_num_value_allowed_flag: 0
pic_width_in_mbs_minus1: 119 (1920)
pic_height_in_map_minus1: 33
frame_mbs_only_flag: 0
derived height: 1088
mb_adaptive_frame_field_flag: 0
direct_8x8_inference_flag: 1
frame_cropping_flag: 0
vui_parameters_present_flag: 1
aspect_ratio_info_present_flag: 1
aspect_ratio_idc:1
overscan_info_present_flag: 0
video_signal_info_present_flag: 0
chroma_loc_info_present_flag: 0
timing_info_present_flag: 0
nal_hrd_parameters_present_flag: 0
vcl_hrd_parameters_present_flag: 0
pic_struct_present_flag: 0
Nal length 9 start code 4 bytes
ref 3 type 8 Picture parameter set
pic_parameter_set_id: 0
seq_parameter_set_id: 0
entropy_coding_mode_flag: 1
pic_order_present_flag: 0
num_slice_groups_minus1: 0
num_ref_idx_l0_active_minus1: 1
num_ref_idx_l1_active_minus1: 0
weighted_pred_flag: 0
weighted_bipred_idc: 0
pic_init_qp_minus26: 0
pic_init_qs_minus26: 4294967270
chroma_qp_index_offset: 0
deblocking_filter_control_present_flag: 1
constrained_intra_pred_flag: 0
redundant_pic_cnt_present_flag: 0


I streamed another sample today, it's much smaller (~130 MB) than the old one (~330 MB), but I used exactly the same settings as before.

I'm working at a solution to make this sample available for download - perhaps we can do it with BitTorrent - so stay tuned, I hope I'll have it done today.

bond
6th June 2005, 12:58
What file extension did you give eb's sample so it could play with Nero's filters?
as i said its a mpeg transport stream. i dont think that nero's filters can play it

what i did is demuxing it to raw with mplayer, than cutting everything away till the first SPS to get a compliant avc stream, than muxing the stream into .mp4 with mp4box or mp4creator

illCP
6th June 2005, 13:17
One step closer: :)

I demuxed the video stream from the .pva with bbdmux, loaded the resulting raw AVC-stream in a hexeditor and removed everything before the first "00 00 00 01 67" as you said and did.

Now the raw stream can be played in MPC, but VLC and MPlayer are still crashing.

The stream can be muxed with mp4box (and YAMB) and mp4creator - but the resulting .mp4 cannot be played by all three players.

what i did is demuxing it to raw with mplayer
How did you do that ?

bond
6th June 2005, 13:36
but VLC and MPlayer are still crashing. as i wrote already mplayer cant play raw multislice streams

The stream can be muxed with mp4box (and YAMB) and mp4creator - but the resulting .mp4 cannot be played by all three players. yes i noticed too that mplayer strangely cant play it, i assume thats because libavcodec (thats the avc decoder using in vlc and mplayer) might not handle interlaced streams

for playback of avc .mp4 files in MPC (or any other dshow player) you need of course
1) a .mp4 splitter/parser (like haali or nero)
2) an avc decoder (like ffdshow or nero)

if libavcodec doesnt handle interlaced, ffdshow will also not handle it, as ffdshow also uses libavcodec for avc decoding

this only leaves the possibility of using the nero decoder, and here the nero decoder decodes the file fine (as i wrote already)

How did you do that ? mplayer -dumpvideo -dumpfile raw.264 input.file

unixfs
6th June 2005, 21:41
bond: when you use mplayer (latest) you don't need all this demuxing and remuxing mess.
Why don't you simply play the original TS? Eventually use a larger -tsprobe
(my default is 512000). P.S. those streams don't have VUI messages,
hence they don't specify the fps (that you need to pass by hand with -fps 25)

bond
6th June 2005, 21:56
bond: when you use mplayer (latest) you don't need all this demuxing and remuxing mess.
Why don't you simply play the original TS? Eventually use a larger -tsprobe
(my default is 512000). P.S. those streams don't have VUI messages,
hence they don't specify the fps (that you need to pass by hand with -fps 25)
i cant get it to play with latest mplayer

i think thats because
1) the avc stream doesnt start correctly
2) the stream is interlaced, which mplayer doesnt handle for avc

or does it work for you?

unixfs
6th June 2005, 22:10
it does, anyway I just discovered a possible bug in the demuxer.
Time to fix it...

unixfs
6th June 2005, 23:42
The following patch against mplayer-cvs will work, provided that you
use -tsprobe 512000 (the pmt in streams like these is quite
infrequent). I will commit it only after having verified it doesn't
break other code :)
In the meantime have fun.


Index: demux_ts.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/demux_ts.c,v
retrieving revision 1.33
diff -c -u -r1.33 demux_ts.c
cvs diff: conflicting specifications of output style
--- demux_ts.c 6 Jun 2005 20:49:55 -0000 1.33
+++ demux_ts.c 6 Jun 2005 22:40:13 -0000
@@ -2688,10 +2688,12 @@

priv->last_pid = pid;

+ pid_type = pid_type_from_pmt(priv, pid);
+ if(pid_type != UNKNOWN)
+ tss->type = pid_type;
is_video = IS_VIDEO(tss->type) || (tss->type==SL_PES_STREAM && IS_VIDEO(tss->subtype));
is_audio = IS_AUDIO(tss->type) || (tss->type==SL_PES_STREAM && IS_AUDIO(tss->subtype)) || (tss->type == PES_PRIVATE1);
is_sub = ((tss->type == SPU_DVD) || (tss->type == SPU_DVB));
- pid_type = pid_type_from_pmt(priv, pid);

// PES CONTENT STARTS HERE
if(! probe)

bond
7th June 2005, 08:33
actually this doesnt solve the point that mplayer cant decode interlaced avc (we are not talking about mpeg-2 video here)

unixfs
7th June 2005, 08:44
actually this doesnt solve the point that mplayer cant decode interlaced avc (we are not talking about mpeg-2 video here)

it doesn't solve the impossibility to decode that stream, but solves a different
issue: previously you had to demux the video stream before playing it
because the TS demuxer wrongly identified it as mpeg2 instead of h264.
Now it's no more the case.

bond
7th June 2005, 09:03
ic :)

illCP
7th June 2005, 09:34
actually this doesnt solve the point that mplayer cant decode interlaced avc
I'm not sure if this really is the case...

I just tried to encode some pieces of interlaced DV "as is" to x264 with VDub (in an AVI-Container). It can be played with MPC (using ffdshow) as well as VLC & MPlayer. It plays with only about 15 fps (maybe my CPU (AMD 2100+) is too slow for full PAL AVC ?) but it plays...

The point I'm not sure about is if this stream "knows that it's interlaced" - i don't see an option for an interlacing flag like in DivX or MPEG-2 encoders in x264 VfW. Could it be the fields are just "smashed together" in one frame - so that it's not really interlaced ?

The next possibility I thought about was a problem with the HDTV resolution - I thought libavcodec could have a problem with resolutions above Full PAL (or just with 1920 x 1088) and AVC. Just for fun I resized a progressive Full PAL stream to 1920 x 1088 and encoded it - this one is played by all three players.

So either libavcodec has a problem with interlaced AVC generally, or only with interlaced HDTV AVC...?!

unixfs
7th June 2005, 11:14
x264 encodes only progressive and decodes nothing.
The interlaced flag is present in the SPS (in this case the height of the
video will have to be doubled).

bond
7th June 2005, 11:28
x264 encodes only progressive and decodes nothing.
indeed, the stream you encoded with x264 is not interlaced

The interlaced flag is present in the SPS (in this case the height of the video will have to be doubled).
do you know the name of that flag?

unixfs
7th June 2005, 11:40
frame_mbs_only:
HeightInMbs = (2-frame_mbs_only)*HeightInMapUnits

bond
7th June 2005, 11:48
frame_mbs_only:
HeightInMbs = (2-frame_mbs_only)*HeightInMapUnits
hm and in what way does this tell if its interlaced?

unixfs
7th June 2005, 11:51
frame_mbs_only means "frame macroblocks only" that is: not interlaced
(technically called "field coded")

bond
7th June 2005, 12:40
frame_mbs_only means "frame macroblocks only" that is: not interlaced
(technically called "field coded")
ic, thx a lot! :)

eb
7th June 2005, 15:10
Tomorrow I am going to set back my antenna to HotBird13 to see if any changes were done.
I will record another samples .ts. .PVA .
Maybe someone has additional information about service channel or others suplementary PIDs for this tests with HDTV H.264.
As there are no problems to playback and transcode video stream, still mysteries is audio for me, if silence is broadcasted as AC3 or is it special kind of audio.
Kind ask to Bond for prompt what special care must be taken when recording.
Below is full transcoded to Xvid 960x720 (33MB) from my previous 200MB .ts record.
ftp://www.eb.enterpol.pl:eb@www.eb.enterpol.pl/hdpremier1++.avi

eb

PS. When such tests will be done with Xvid, with this bandwidth 4(four) HDTV channels can be broadcasted with excelent quality.

EDIT or 6 RATs per hour

eb
7th June 2005, 16:27
marfi author of SkyView published new version of SkyAVC_MPEG-4 filter.
http://republika.pl/skyview/SkyAVC_MPG4.zip

According to marfi words:
possibly others than Elecard MPEG-4 decoders can be used
- typical MPEG2 graph can be used /I assume that for normal mpeg2 tv channels
I will test it tomorrow.

eb

bond
7th June 2005, 16:32
i thought someone posted that already, but it seems the streams are encoded with the tandberg avc encoder according to this (http://www.broadcastbuyer.tv/publish/article_4838.shtml)

yuan0827
27th September 2005, 01:59
Dear illcp,
I need more real h.264 ts bitstream for test. But I can not receive the signals becuase of my location. Can you capture more ts bitstreams for test? Thank you very much!