- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm using simple_player to test mp4 decoding. The video is mp4_atom stream with H264 encoding as reported by the player.
However the video can not be played. Opening the project in debug mode I found exception report in visual studio output window:
Those are the file links:
However the video can not be played. Opening the project in debug mode I found exception report in visual studio output window:
First-chance exception at 0x75cab727 in simple_player.exe: Microsoft C++ exception: UMC::h264_exception at memory location 0x065ff8c0..
Those are the file links:
http://remixshare.com/dl/9z2lh/00002.mp4
http://remixshare.com/dl/tvlih/00003.mp4
http://remixshare.com/dl/6nrtv/00004.mp4
http://remixshare.com/dl/2tjie/00005.mp4
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi. Your are using GPAC to create the .mp4 streams. So some modifications required in file
umc_mp4_parser.cpp from codec/mpeg4_spl/src directory.
The following lines should be added after line 1348:
else
dr->MovePosition(leaf_atom.size-8);
This modifcation required to skip the unused atom.Regards,
Alexander
Link Copied
7 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Thanks for your report here. I will download these function, and have check here?
Which version of Intel IPP are you using now? Is this a 64 bit appliction, or 32 bit?
thanks,
Chao
Thanks for your report here. I will download these function, and have check here?
Which version of Intel IPP are you using now? Is this a 64 bit appliction, or 32 bit?
thanks,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi. Your are using GPAC to create the .mp4 streams. So some modifications required in file
umc_mp4_parser.cpp from codec/mpeg4_spl/src directory.
The following lines should be added after line 1348:
else
dr->MovePosition(leaf_atom.size-8);
This modifcation required to skip the unused atom.Regards,
Alexander
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm using IPP 6.1 and UMC codec pipeline from simple_player example to create splitters and decoders.
Thank you I will try your modifications
Thank you I will try your modifications
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That is actually solved the problem. But there is another one with those HD mp4 appeared.
I'm capturing at equal intervals e.g. one frame from every N-th second using Splitter::SetTimePosition() and until Splitter::GetNextData() puts to in MediaDataEx::GetTime() frame after desired seek operation I keep extracting the frames.
With mts encoding of those files seeking is precise but with mp4 it is similar to ordinary low resolution videos.
E.g. seeking to 10th second returns first frame from 7th or 8th second,then further seeking to 20th second returns first frame from 16th second, that is several seconds before target position, and it needs to extract all frames to arrive to desired seek position.
Can this be solved or otherwise with small N=1,2 seconds it is much faster to keep extracting all frames one by one and pull only those at a desired N interval step.
Compared to non-HD videos those kinds of capture is very costly, cpu usage is 100% consuming all cores equally.
I'm capturing at equal intervals e.g. one frame from every N-th second using Splitter::SetTimePosition() and until Splitter::GetNextData() puts to in MediaDataEx::GetTime() frame after desired seek operation I keep extracting the frames.
With mts encoding of those files seeking is precise but with mp4 it is similar to ordinary low resolution videos.
E.g. seeking to 10th second returns first frame from 7th or 8th second,then further seeking to 20th second returns first frame from 16th second, that is several seconds before target position, and it needs to extract all frames to arrive to desired seek position.
Can this be solved or otherwise with small N=1,2 seconds it is much faster to keep extracting all frames one by one and pull only those at a desired N interval step.
Compared to non-HD videos those kinds of capture is very costly, cpu usage is 100% consuming all cores equally.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi 9ine,
I'm not sure that I understood your problem but seems like this is typical thing for repositioning - looking foran I framenearst to selected time mark.
I'm not sure that I understood your problem but seems like this is typical thing for repositioning - looking foran I framenearst to selected time mark.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How can I skip to nearest I frame after seek operation?
UMC samples show frames capture only.
UMC samples show frames capture only.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi 9ine,
The simplest way skip to nearst frame is the following :
- reposition in stream;
- wait for decoder to return UMC_OK instead ofUMC_ERR_NOT_ENOUGH_DATA
Or you can analyze data from splitter (demuxer) after repositioning to skip the unneeded decoder calls.
Regards,
Alexander
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page