Quantcast
Channel: Intel® Software - Media
Viewing all 2185 articles
Browse latest View live

Issues with How to run Media SDK samples on Skylake post

$
0
0

So, I tried to follow the steps described in the "How to run Media SDK samples on Skylake" post at https://software.intel.com/en-us/forums/intel-media-sdk/topic/593838 .  The encoding steps worked for me, but the decoding steps do not.  The post says to use the following command-line for decoding: sample_decode h265 -i <inputfile> -o <outputfile> -hw .

This definitely does not work.  For the encoding command-line, it says to use -p 6fadc791a0c2eb479ab6dcd5ea9da347 to load the Skylake HEVC plug-in, but this isn't done for the decoding command-line.  As a result, it uses the default for HEVC, the MFX_PLUGINID_HEVCD_SW plug-in, and this doesn't work, since the plug-in cannot be loaded.  The call to MFXVideoUSER_Load() fails with MFX_ERR_NOT_FOUND.  I don't know what is needed to install this plug-in, but it is definitely not provided by the latest Intel graphics driver package.  Note that I'm using all the prerequisites as described in the post on a Windows 10 Skylake system.  Plus, based on the name of the #define, it would seem that this GUID is associated with a SW HEVC plug-in, and I wouldn't want to use that anyway.

If instead, I use -p 6fadc791a0c2eb479ab6dcd5ea9da347 , it still doesn't work, unfortunately.  It is able to load the plug-in just fine, but it fails when it calls m_pmfxDEC->DecodeHeader() with MFX_ERR_UNSUPPORTED.  As an input file, I used the output file of HEVC encoding using sample_encode.exe, so I would expect that the input file is good.  I also tried it with the test_stream.h265 file included with the samples in the _bin/content directory, and it failed the same way.  I tried with -d3d and also with -d3d11, which didn't make any difference, and those wouldn't really make any difference for the DecodeHeader() call anyway.

Also, if anyone copies the command-line from the post exactly, it won't actually work.  That's because in some cases (such as with -p), it uses a "long dash", and that results in a syntax error with the sample, which expects a '-' character as the option separator.

So, what is needed to get HEVC decoding working on Skylake?


Best approach to use the Media Server Studio SDK in my application (3) ?

$
0
0

Greetings again,

Working on the ideas from two previous discussions (here and here), my multi-channel video surveillance system now looks like this:

                             stage 0           stage 1                  stage 2                       stage 3                     stage 4                         stage 5
Channel 0:        Bitstream file -> Decode -> Video Pre-processing -> Activity detection -> (if detected) Encode -> Output bitstream file(s)
                ...
Channel (N-1):  Bitstream file -> Decode -> Video Pre-processing -> Activity detection -> (if detected) Encode -> Output bitstream file(s)

where each channel is an MSDKThread.

The most important part of each channel is stage 3, the activity detection. Stage 2, the pre-processing, is compute-intensive, but its interfaces are simple: raw frame in, raw frame out. This stage prepares each frame for the detection.

From what I understand of Media SDK Developer's Guide (DG), stages 2 and 3 should be user-defined modules that follow the decoder module, so here are my questions:

1, Are user-defined modules the right way to go? If not, what do you suggest?
2, Which makes more sense? Making stages 2 and 3 each a separate module, or combine them in one module? The tricky part is that the detection algorithm likely requires the pixel data in the system memory, so data copy will be needed.
3, The DG talks about using the mxfPlugin to create a user-defined module, and using the USER class to integrate it into the Media SDK. I am still not quite clear exactly how to do both. Are there some examples demonstrating these steps?
4, How can't I find mxfPlugin's definition in the Reference Manual?

As always, suggestions/opinions/insights are welcome and greatly appreciated.

Thanks,
Robby

Issues with using system memory with H.264/HEVC encoding/decoding on Skylake on Windows 10

$
0
0

If I use the -d3d or -d3d11 with the sample_encode and sample_decode samples on Windows 10 Skylake, this works fine for H.264 encoding and decoding and HEVC encoding (HEVC decoding isn't working for other reasons, as I described in the following post:  https://software.intel.com/en-us/forums/intel-media-sdk/topic/596382 ).  However, if I instead use system memory (no -d3d nor -d3d11 option), it doesn't work at all.

For HEVC encoding using system memory, it seems to work, but the resulting .hevc file is very small.  For example, if I use the following command-line options to encode the test_stream_176x66.yuv that is included with the samples:

sample_encode.exe h265 -i ..\..\..\_bin\content\test_stream_176x96.yuv -o test_stream.hevc -w 176 -h 96 -hw -p 6fadc791a0c2eb479ab6dcd5ea9da347 -d3d

it generates a file that is 149,746 bytes in size.  If I then mux that into an .mp4 container (I used MKVToolNix for this), this generates a 3 second clip that plays fine in VLC.

If I instead use the following command-line:

sample_encode.exe h265 -i ..\..\..\_bin\content\test_stream_176x96.yuv -o test_stream.hevc -w 176 -h 96 -hw -p 6fadc791a0c2eb479ab6dcd5ea9da347

this instead generates a file that is 1,551 bytes in size.  After muxing the file into an .mp4 container, this generates a 3 second clip which plays fine in VLC, but the contents of each frame are the same--all the pixels are the same "green" color.  So, it clearly didn't work.

The results for H.264 encoding/decoding using system memory are in some ways worse.  With both sample_decode, it fails the first time it calls SyncOperation() with MFX_ERR_DEVICE_FAILED.

With sample_encode, it gets into an infinite loop because it doesn't have enough surfaces prior to needing to synchronize the first task--that is, early on in the pipeline, it calls GetFreeSurfaceIndex() and never returns (or rather, it will eventually return, but it will take a _long_ time).  I compared the value stored in NumFrameSuggested after QueryIOSurf() is called when -d3d is used and when it isn't.  When -d3d is used, NumFrameSuggested is set to 7, while when it isn't used, it is set to 6.  I was able to get past the infinite loop by adding 1 to nEncSurfNum in the case that system memory is used.  This gets me to the first call to SyncOperation(), which fails with MFX_ERR_ABORTED.

So, the Intel Media SDK is totally hosed when using system memory on Skylake.  This works fine on 3rd, 4th, and 5th generation Intel Core processors but fails utterly on 6th generation Core processors.

Are they any workarounds for this?  If not, when can I expect to see a fix for this?

example for capture device driver ?

$
0
0

Hello,

Is there any example of using capture device with media sdk ?

For example camera capture device, etc ?

Is there any example for V4L capture device with media sdk (not only v4l) ?

Best Regards,

Ran

Sample Example is not working with OS-CentOs7.1 and machine-NUC 5PPYH(N3700)

$
0
0

HI All,

I am installing MediaServerStudioEssentials2015R6  on NUC 5PPYH(N3700) which has OS-CentOs-7.1

I followed all the steps given in intel document.

(as root)
# ./install_sdk_UMD_*.sh
# mkdir /MSS
# chown {regular user}:{regular group} /MSS
(as regular user)
$ cp build_kernel_rpm*.sh /MSS
$ cd /MSS
$ ./build_kernel_rpm*.sh
(as root)
# cd /MSS/rpmbuild/RPMS/x86_64
# rpm -Uvh kernel-3.10.*.rpm
# reboot 

After this i tried to build  tutorial examples. It got build then it is  not running.

A simple session example- ( simple_1_session) is throwing following  error-

Illegal instruction

 

on debug-bt-  i found this issue-

 bt
#0  0x00007ffff5fcfa47 in ?? ()
   from /opt/intel/mediasdk/lib64/libmfxsw64-p.so.1.16
#1  0x00007ffff5bf1803 in ?? ()
   from /opt/intel/mediasdk/lib64/libmfxsw64-p.so.1.16
#2  0x00007ffff5adbef9 in ?? ()
   from /opt/intel/mediasdk/lib64/libmfxsw64-p.so.1.16
#3  0x00007ffff7dea4e3 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#4  0x00007ffff7deeb04 in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#5  0x00007ffff7dea2f4 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#6  0x00007ffff7dee21b in _dl_open () from /lib64/ld-linux-x86-64.so.2
#7  0x00007ffff739502b in dlopen_doit () from /usr/lib64/libdl.so.2
#8  0x00007ffff7dea2f4 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#9  0x00007ffff739562d in _dlerror_run () from /usr/lib64/libdl.so.2
#10 0x00007ffff73950c1 in dlopen@@GLIBC_2.2.5 () from /usr/lib64/libdl.so.2
#11 0x000000000040b0c3 in MFX_DISP_HANDLE::LoadSelectedDLL(char const*, eMfxImplType, int, int, mfxInitParam&) ()
#12 0x0000000000408905 in MFXInitEx ()
#13 0x00000000004099db in MFXInit ()
#14 0x00000000004026d2 in MFXVideoSession::Init (this=0x7fffffffe230, impl=3,
    ver=0x7fffffffdf90) at /opt/intel/mediasdk/include/mfxvideo++.h:45
#15 0x0000000000403585 in Initialize (impl=3, ver=...,
    pSession=0x7fffffffe230, pmfxAllocator=0x0, bCreateSharedHandles=false)
    at ../common/common_utils_linux.cpp:28
---Type <return> to continue, or q <return> to quit---
#16 0x000000000040251b in main (argc=1, argv=0x7fffffffe348)
    at src/simple_session.cpp:47

 

 

Plz suggest, what i should do for this.

Regards,

Sumit Jha

 

 

sample_decode.exe is not running on all system...

$
0
0

Hi 

I have created my own sample_decode.exe for Screen Capture , i am providing plugins 22d62c07e672408fbb4cc20ed7a053e4 . After building the project when i run the exe with it's plugins in same folder it is running fine. But when i am running it on different system, then  some system runs it successfully but some systems are not running it. 

I am copying exe and plugins on different system to run it. But not all the systems are running it. 

Different systems error:

System1: Error when i call InitEx(initPar)... where initPar is MFX_IMPL_HARDWARE_ANY.

System2: Error is that Guid plugin not loaded

But on some systems it is working fine.

All the systems is having Version on graphics greater then 1.11.

 

Help me to get the solution.

MFXVideoDECODE_Query(m_session, in, out) returns -1.

$
0
0

Hi 

I am facing error -1 which MFXVideoDecode_Qurery() returns . I am running exe which i have created to capture screen i.e., screen_capture.exe with it's plugin 22d62c07e672408fbb4cc20ed7a053e4, which is running very well on my system but on my second sytem that screen_capture and it's plugins return error -1 from MFXVideoDecode_Qurery() function. My system configuration of second system  is:

Intel Media SDK System Analyzer (32 bit)

The following versions of Media SDK API are supported by platform/driver:

        Version Target  Supported       Dec     Enc
        1.0     HW      Yes             X       X
        1.0     SW      No
        1.1     HW      Yes             X       X
        1.1     SW      No
        1.3     HW      Yes             X       X
        1.3     SW      No
        1.4     HW      Yes             X       X
        1.4     SW      No
        1.5     HW      Yes             X       X
        1.5     SW      No
        1.6     HW      Yes             X       X
        1.6     SW      No
        1.7     HW      Yes             X       X
        1.7     SW      No
        1.8     HW      Yes             X       X
        1.8     SW      No

Graphics Devices:
        Name                                         Version             State
        Intel(R) HD Graphics                         10.18.10.3958       Active

System info:
        CPU:    Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz
        OS:     Microsoft Windows 8.1 Pro
        Arch:   64-bit

Installed Media SDK packages (be patient...processing takes some time):

Installed Media SDK DirectShow filters:

Installed Intel Media Foundation Transforms:
  Intel« Hardware M-JPEG Decoder MFT : {00C69F81-0524-48C0-A353-4DD9D54F9A6E}
  Intel« Hardware VP9 Sync Decoder MFT : {07AB4BD2-1979-4FCD-A697-DF9AD15B34FE}
  Intel« Hardware VP9 Decoder MFT : {0C69E30B-A112-4A86-B496-35120CD745D5}
  Intel« Hardware VP8 Sync Decoder MFT : {451E3CB7-2622-4BA5-8E1D-44B3C41D0924}
  Intel« Hardware VP8 Decoder MFT : {6D856398-834E-4A89-8EE5-071BB3F58BE4}
  Intel« Quick Sync Video H.264 Encoder MFT : {4BE8D3C0-0515-4A37-AD55-E4BAE19AF
471}

This second is having msdk library installed.

Help me to get the solution. 

Thank you

 

Difference between SDK client and server.

$
0
0

Hi All,

What is the difference b/w SDK server and client version.

How on should install client.

 

Regards,

Sumit 


How to handle Decoder Errors.

$
0
0

Hi All,

I am getting an error from decode block of simple transcoder for my corrupted mpeg2 stream.

Errors are-MFX_ERR_LOCK_MEMORY,MFX_ERR_INCOMPATIBLE_VIDEO_PARAM,MFX_ERR_INVALID_VIDEO_PARAM.

I am currently resetting Decode by new extracted headers from bit stream to  removes MFX_ERR_LOCK_MEMORY error.

But same doesn't worked for others. In other words, for MFX_ERR_INCOMPATIBLE_VIDEO_PARAM error,  when i trying to reset decoder with new header  then  reset returns MFX_ERR_INVALID_VIDEO_PARAM.

Plz suggest how to handle this. Actually this decoder is a  part of my transcoder so do i need to do something for encoder also.

 

Regards,

Sumit Jha

 

 

 

 

 

h.264 profiles supported by Quick Sync

$
0
0

Quick Sync is a dedicated hardware core on the processor die for h.264 encoding. How many profiles of H.264 does it support? I want to know whether it supports High 4:4:4 Predictive Profile (Hi444PP) which is a lossless encoding profile.

I only have an IVY-based CPU(i3-3220) with HD2500 in which it seems as if only three profiles are supported, i.e., baseline, main and high. Does Quick Sync supports Hi444PP in the latest SKL-based CPU with the GEN9 GPU. 

To my knowledge, Quick Sync’s counterpart, NVIDIA’s NVENC support Hi444PP ever since the first generation Maxwell GPUs. 

 

Problem while transcoding 1080p stream using Intel Media SDK

$
0
0

Hello,

I have installed Intel Integrated Native Developer Experience(INDE) 2015 Professional Edition and Intel Media Server Studio Professional Edition 2015r6 on Windows 7 Ultimate(64 bit). I have downloaded code samples for media client solutions MediaSamples_Windows_6.0.068.msi and trying to run sample_multi_transcode. I have successfully transcoded 720p video(without audio) from mpeg2 to mpeg2 and also using h264 codec. But I am not able to successfully transcode 1080p Full HD stream from mpeg2 to mpeg2. Moreover I am also not able to transcode audio stream. 

System Specifications:

  • Intel Core i7-4790 CPU @ 3.60 GHz
  • 8 GB RAM
  • Windows 7 Ultimate(64 bit)

I have also attached below the result of Media SDK System Analyzer tool. 

Input Stream specification:

  • Codec: mpeg2
  • Duration: 30 minutes
  • File size: 850 MB
  • Resolution: 1920x1080

Please suggest me

How can I transcode 1080p stream with above mentioned specifications and get good output video with mpeg2 codec or h264 codec?

Also how can I transcode audio stream using Intel media SDK?

Please help me to get the solution.

Thank you in advance.

Regards,

Minoli

 

AttachmentSize
Downloadmediasdk_sys_analyzer.png52.74 KB

how is the i7-6700k gpu performing?

$
0
0

hello everyone

I am ready to use 4K encoder(H264) in my application, nividia GPU is a choice,

but I have been using intel GPU, so I want to known how is the i7-6700k gpu performing?

Deployment: Crash when libmfxsw32.dll in same dir as exe

$
0
0

To deploy my application I put libmfxsw32.dll in the same directory as my exe. That used to work, but now when libmfxsw32.dll is in the same dir as my exe, it crashes when loading the hardware dll. If libmfxsw32.dll is in some other directory in the path my program does not crash and works fine.

I am changing several things at once, upgrading to Visual Studio 2015 and INDE 2015 Update 2. I am on Windows 8.1 Pro x64 on a Core i7 3770 (Ivy Bridge) and have just installed the latest driver using the Intel Driver Update Utility which is 15.33.36.64.4226.

I would like to keep my deployment simple and put libmfxsw32.dll in the same dir as my exe. Is that not a supported scenario? Am I doing something wrong?

AttachmentSize
Downloadtracer.zip2.12 KB

Intel Media Server Studio R7 update: wrong link to a Linux build

$
0
0

I've received a mail notification about R7 update for Media Server Studio (Community Edition). However, the link for a Linux build points to the previous R6 version; the link for a Windows version correctly points to R7.

libva intel-driver source

$
0
0

Hi,

Can someone point me to the source for the MediaSDK changes to the libva intel driver?

The 2015R6 release only contains source for libva and libdrm, not the libva intel-driver package.

Thanks,

will


Need Proper Conformation regarding Media cabability for WebRTC

$
0
0

Hi,

I need stream video using WebRTC, so I need clear conformation regarding the Encoding and Decoding details regarding the Cherry Trail SoC, and its complete media capability, aso the support for WebRTC in it. I googled a lot to find this information, but I could find only one information which i have attached. Please provide me the complete details vor the WebRTC support in Cherry Trail and it Video Transcoding(vp8, h264, encoding and decoding) capabilities.

AttachmentSize
Downloadcherry_04.jpg66.01 KB

Issue in detecting D3D11 supports programmatically

$
0
0

Hi,

I am having a test machine which has Windows 8.1 OS and Intel(R) HD Graphics 4400 card (driver version 10.18.14.4170). This machine supports D3D11. I confirmed it by running sample_decode application also using -d3d11 option and output was fine.

But if I check the Decoder capability using MFXQueryIMPL(), then it is suggesting only MFX_IMPL_VIA_D3D9. I was assuming that this API should suggest MFX_IMPL_VIA_D3D11.

Basically, my requirement is to first check the decoding capability on system (whether HW decoding supported or not, and whether using D3D11 memory or D3D9 memory) and then initialize the decoder accordingly. I have written a function which looks like as following:

mfxStatus CheckDecoderCapability(bool& bIsHWDecodingSupported, MemType& MemoryType)
{
	mfxSession session;
	mfxIMPL impl;
	mfxVersion version;
	mfxStatus sts = MFX_ERR_NONE;

	// set for auto selection of any hardware/software implementation using any memory
	impl = MFX_IMPL_AUTO_ANY | MFX_IMPL_VIA_ANY;

	// set version to 1.0 and later we will query actual version of the library which will get loaded
	version.Major = 1;
	version.Minor = 0;

	// initialize the session
	sts = MFXInit(impl, &version, &session);
	CHECK_RESULT(sts, MFX_ERR_NONE, sts);

	// get API version of the loaded library
	sts = MFXQueryVersion(session, &version);
	CHECK_RESULT(sts, MFX_ERR_NONE, sts);

	// get implementation of the loaded library
	sts = MFXQueryIMPL(session, &impl);
	CHECK_RESULT(sts, MFX_ERR_NONE, sts);

	if (MFX_IMPL_HARDWARE == MFX_IMPL_BASETYPE(impl))
		bIsHWDecodingSupported = true;
	else
		bIsHWDecodingSupported = false;

	if ((0xff00 & impl) == MFX_IMPL_VIA_D3D11)
		MemoryType = D3D11_MEMORY;
	else if ((0xff00 & impl) == MFX_IMPL_VIA_D3D9)
		MemoryType = D3D9_MEMORY;
	else
		MemoryType = SYSTEM_MEMORY;

	sts = MFXClose(session);
	CHECK_RESULT(sts, MFX_ERR_NONE, sts);
	return MFX_ERR_NONE;
}

So my questions is:

1. In this test machine, why MFXQueryIMPL() is unable to detect support of D3D11? I am attaching analyzer log also for this test machine.

2. Is there any other way through which i can detect whether my environment is supporting D3D11 or not?

Thanks

 

AttachmentSize
Downloadsys_analysis.txt1.42 KB

VPP NV12->RGB4 performance

$
0
0

Hi.

I`m working on multithreaded decoder app. I`m using Intel INDE Professional 2015 Update 2 on Core i7-4790 with HD Graphics 4600, driver version 10.18.14.4264, Windows 8.1

My pipeline is looking like this:

h264 stream --> decoder (video memory) --> render (DirectX) --> VPP (NV12->RGB4) --> system memory

Without VPP part performance is about 500 fps (20 fullHD streams at 25 fps each) but as soon as I enable VPP performance drops to something near 100 fps. I wonder, if it is expected that VPP operation is so heavy in terms of performance?

 

captured mp4 file - wrong length

$
0
0

Hi,

I'm using an IMFMediaSession to capture Audio and Video from a Webcam to an mp4 File.

The files are valid and can be displayed without problems, but the length information is invalid. If I capture a file with only a few seconds, the file shows a length of several hours.

When I play the file using Windows Media Player or VLC, the players also display a wrong length. 

Any ideas?

Thanks in advance.

How to use Media SDK with V4l Linux ?

$
0
0

Hello,

I've  been evaluating media sdk , but haven't yet understand how it should be used with capture device.

It seems that all examples for media sdk server (linux) refer to encode/decode only, but we are interested to work with video capture:

capture->encode->file

Is there any hint/tip as to how it should be used with capture device output ? Should it be used with v4l ?

Best Regards,

Ran

Viewing all 2185 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>