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

Media SDK no HEVC HW Decoder/Encoder Support

$
0
0

My hardware below with latest driver, but there has no HEVC HW decode/encode detect ? 

CPU:    Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz     HD Graphics 530 
        OS:     Microsoft Windows 10 Pro
        Arch:   64-bit

  and update driver win64_25.20.100.6326.exe 

but when run the mediasdk_system_analyzer_64.exe where has no HEVC HW Decoder/Encoder 

Graphics Devices:
        Name                                         Version             State
        Intel(R) HD Graphics 530                     25.20.100.6326      Running / Full Power

System info:
        CPU:    Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
        OS:     Microsoft Windows 10 Pro
        Arch:   64-bit

Installed Media SDK packages (be patient...processing takes some time):
        Intel(R) Media SDK 2018 R2 - HEVC GPU accelerated Encoder
        Intel(R) Media SDK 2018 R2 - Media Samples
        Intel(R) Media Server Studio 2017 - Video Quality Caliper
        Intel(R) Media SDK 2018 R2 - Software Development Kit
        Intel(R) Media SDK 2018 R2 - Documentation for HEVC
        Intel(R) Media SDK 2018 R2 - HEVC SW Encoder
        Intel(R) Media SDK 2018 R2 - HEVC SW Decoder

Installed Media SDK DirectShow filters:

Installed Intel Media Foundation Transforms:
        Intel(R) Hardware M-JPEG Decoder MFT : {00C69F81-0524-48C0-A353-4DD9D54F9A6E}
        Intel(R) Quick Sync Video H.264 Encoder MFT : {4BE8D3C0-0515-4A37-AD55-E4BAE19AF471}
        Intel(R) Hardware H265 Encoder MFT : {BC10864D-2B34-408F-912A-102B1B867B6C}

 


H264 Decode Tearing

$
0
0

We are decoding elementary H264 streams from RTSP IP Cameras.

I am able to verify there are no bit errors in the stream. I save the raw .264 to file, and translate to yuv using FFMPEG and it doesn't report any decoding issues. This happens with H264 from two seperate cameras that both worked fine with the older Intel IPP Libraries.

I have observed this in MSDK2018 R1 and MSDK2018 R2. Below is my code for initializing decoder and decoding a single frame at a time, there's also a picture that shows the motion tearing.

So it all decodes and produces an uncompressed format (yuv) but there is significant tearing in the output.

 

 

 

Initialization Code:

https://pastebin.com/raw/5hvrDX97

int MediaSDKDecoder::init(mfxU32  vidCodec, unsigned char *frames, int bufSize)

Here I pass in the codex, input buffer (this is SPS and PPS for the init method) and the output buffer

 

Decode One frame:

https://pastebin.com/raw/ey8bmA7D

int MediaSDKDecoder::decodeFrame(int size, unsigned char *frames, unsigned char *frameout)

The arguments to this are a single input buffer, and a single output buffer, with input buffer size

 

Read from memory function:

mfxStatus MediaSDKDecoder::ReadFromMemory(mfxBitstream * pBS, unsigned char* input, int size)
	{



		memmove(pBS->Data, pBS->Data + pBS->DataOffset, pBS->DataLength); pBS->DataOffset = 0;

		int nBytesRead = (int)memcpy(pBS->Data + pBS->DataLength, &input[0], size);

		if (0 == nBytesRead)
			return MFX_ERR_MORE_DATA;

		pBS->DataLength = size;

		return MFX_ERR_NONE;
	}

 

MediaServerStudio2018R1 Minimum Installation on Target Platform causes yum repo inconsistency?

$
0
0

I am having problems during MediaServerStudio2018R1 Minimum Installation on CentOS 7.4.1708 (core+development tools) with i5-6600 target platform according to Getting Started Guide.

I built necessary packages on the Development System and installed them on the Target System as described in Step5 of "Minimum Install" section on Page10 of Linux 2018R1 Getting Started Guide.

Prebuilt sample program binaries execute successfully. No errors!

When I decide to install another package, Blackmagic Decklink Card Driver in my case, I get the following error about Intel Media SDK:

 

---> Package libdrm.x86_64 0:2.4.74-69021.el7.centos will be updated
--> Processing Dependency: libdrm = 2.4.74-69021.el7.centos for package: intel-linux-media-16.8-69021.el7.centos.x86_64
--> Finished Dependency Resolution
Error: Package: intel-linux-media-16.8-69021.el7.centos.x86_64 (installed)
           Requires: libdrm = 2.4.74-69021.el7.centos
           Removing: libdrm-2.4.74-69021.el7.centos.x86_64 (installed)
               libdrm = 2.4.74-69021.el7.centos
           Updated By: libdrm-2.4.83-2.el7.x86_64 (base)
               libdrm = 2.4.83-2.el7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

 

I tried commenting out mirrorlist lines in the /etc/yum.repos.d/CentOS-Base.repo file, as described in CentOS 7.4 Gold Installs section Important Note paragraph on Page3 of Getting Started Guide. No success!

Mirroring not working

$
0
0

Hi,

I am trying mirroring image using mediasdk version 2017_R3

here is mycode..

mfxExtVPPMirroring mirroringConfig;
memset(&mirroringConfig, 0, sizeof(mirroringConfig));
mirroringConfig.Header.BufferId = MFX_EXTBUFF_VPP_MIRRORING;
mirroringConfig.Header.BufferSz = sizeof(mfxExtVPPMirroring);
mirroringConfig.Type = MFX_MIRRORING_HORIZONTAL;

mfxExtBuffer* ExtBuffer = (mfxExtBuffer*) &mirroringConfig;
vppParams.NumExtParam = 1;
vppParams.ExtParam = (mfxExtBuffer**) &ExtBuffer;

where as Rotation works

mfxExtVPPRotation rotationConfig;
memset(&rotationConfig, 0, sizeof(rotationConfig));
rotationConfig.Header.BufferId = MFX_EXTBUFF_VPP_ROTATION;
rotationConfig.Header.BufferSz = sizeof(mfxExtVPPRotation);
rotationConfig.Angle = 180;

any help is appreciated..

Thanks.

 

MFXInit returns -3 when called from a big transcoding application, returns 0 when called from a simple test program.

$
0
0

Our transcoding application supports MFX on Windows platforms. Now, we are trying to support it on Linux.

2018R1 on CentOS 7.4 Gold installation. Intel i5-6600 cpu.

When we write a simple C++ application like

main()
{
mfxStatus       sts;
mfxIMPL         impl;
mfxVersion      ver;
mfxSession      m_mfxSession;


impl            = MFX_IMPL_HARDWARE_ANY;
ver.Minor       = 25;
ver.Major       = 1;


sts = MFXInit( impl , &ver , &m_mfxSession );

if ( sts == MFX_ERR_NONE )
{
  printf( ....
}
else
{
  printf( ....
}

return( -1 );

}

 

MFXInit returns 0 (success) and we get the following output from mfx_dispatch.cpp

[user@localhost test]$ ./main.o 
INFO:    MFXInitEx (impl=MFX_IMPL_HARDWARE_ANY, pVer=1.25, ExternalThreads=0 session=0x7ffe6675d2b8
INFO:    invoking LoadLibrary(/opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.25)
LoadSelectedDll loaded module /opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.25. hModule=0x247d540
INFO:    MFXInitEx(MFX_IMPL_HARDWARE,ver=1.25,ExtThreads=0,session=0x247d0c0)
At last...
loadStatus=0
INFO:    invoking LoadLibrary(libmfxhw64.so)
LoadSelectedDll loaded module libmfxhw64.so. hModule=0x247d540
INFO:    MFXInitEx(MFX_IMPL_HARDWARE,ver=1.25,ExtThreads=0,session=0x2481fa0)
At last...
loadStatus=0
MFX_VIDEO_ENCODER::__Initialize() successful. Accelerator type: hardware/vaapi, Intel SDK version 1.25

 

When we put the same code to the very beginning of the main() of our big transcoding application and call MFXInit(), it returns -3:

INFO:    MFXInitEx (impl=MFX_IMPL_HARDWARE_ANY, pVer=1.25, ExternalThreads=0 session=0x7ffb44000e50
INFO:    invoking LoadLibrary(/opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.25)
LoadSelectedDll loaded module /opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.25. hModule=0x7ffb44025db0
INFO:    MFXInitEx(MFX_IMPL_HARDWARE,ver=1.25,ExtThreads=0,session=0x7ffb44025930)
library can't be load. MFXInitEx returned -3 
loadStatus=-3
INFO:    invoking LoadLibrary(libmfxhw64.so)
LoadSelectedDll loaded module libmfxhw64.so. hModule=0x7ffb440268e0
INFO:    MFXInitEx(MFX_IMPL_HARDWARE,ver=1.25,ExtThreads=0,session=0x7ffb44025930)
library can't be load. MFXInitEx returned -3 
loadStatus=-3

 

LD_LIBRARY_PATH is defined as

./:/opt/intel/mediasdk/lib64

 

As far as we traced the mfx_dispatch code, the SO is loaded, all function addresses are read but the actualTable[eMFXInitEx] function from the loaded SO happens to return -3.

mfxStatus MFX_DISP_HANDLE::LoadSelectedDLL(const msdk_disp_char *pPath, eMfxImplType reqImplType,
                                           mfxIMPL reqImpl, mfxIMPL reqImplInterface, mfxInitParam &par)
{

......

        // Call old-style MFXInit init for older libraries and audio library
        bool callOldInit = (impl & MFX_IMPL_AUDIO) || !actualTable[eMFXInitEx]; // if true call eMFXInit, if false - eMFXInitEx
        int tableIndex = (callOldInit) ? eMFXInit : eMFXInitEx;

        mfxFunctionPointer pFunc = actualTable[tableIndex];

        {
            if (callOldInit)
            {
                DISPATCHER_LOG_BLOCK(("Calling MFXInit(%s,ver=%u.%u,session=%p) from DLL\n"
                                     , DispatcherLog_GetMFXImplString(impl | implInterface).c_str()
                                     , apiVersion.Major
                                     , apiVersion.Minor
                                     , &session));

                mfxRes = (*(mfxStatus(MFX_CDECL *) (mfxIMPL, mfxVersion *, mfxSession *)) pFunc) (impl | implInterface, &version, &session);
            }
            else
            {
                DISPATCHER_LOG_BLOCK(("MFXInitEx(%s,ver=%u.%u,ExtThreads=%d,session=%p)\n"
                                     , DispatcherLog_GetMFXImplString(impl | implInterface).c_str()
                                     , apiVersion.Major
                                     , apiVersion.Minor
                                     , par.ExternalThreads
                                     , &session));

                mfxInitParam initPar = par;
                // adjusting user parameters
                initPar.Implementation = impl | implInterface;
                initPar.Version = version;
 ====>>         mfxRes = (*(mfxStatus(MFX_CDECL *) (mfxInitParam, mfxSession *)) pFunc) (initPar, &session);
            }
        }

......

}

 

Prebuilt sample transcoding application in the MediaSDK runs good.

Any ideas?

 

Less performance then monitor not connected

$
0
0

If I reboot PC without monitor to be connected (like on server) and run command over shh then I get less fps (converting speed).
Build with instructions: https://gist.github.com/Brainiarc7/4f831867f8e55d35cbcb527e15f9f116

Tested on i7- 6700 and on i7- 8700 CPU on Ubuntu 18.04 with ffmpeg with same result -> no monitor-> less fps.

ffmpeg -hwaccel qsv -c:v h264_qsv -i 720p.mp4 -c:v h264_qsv -preset 7 -b:v 6M -vf scale_qsv=1920:1080 -an -y h264.mp4

Monitor connected : fps: 330fps
Monitor not connected: 250fps

Then I check GPU clock via "sudo intel_gpu_frequency"  it jump to max 1200 MHz.

Than I try to create watermark on video:

ffmpeg -hwaccel qsv -c:v h264_qsv -i 720p.mp4 -c:v hevc_qsv -preset 7 -filter_complex "scale_qsv=1920:1080[s2];movie=watermark.png,scale=1080*0.75:-1,format=nv12,hwupload=extra_hw_frames=30[watermark];[s2][watermark]overlay_qsv=(main_w-overlay_w)/2:(main_h-overlay_h-10)/1:alpha=150[overlay]" -map [overlay] -map a? -c:a copy -b:v 6M -y out_watermark.mp4

Monitor connected : fps: 300fps
Monitor not connected: 200fps

Any idea why up to 30% less without monitor with overlay_qsv filter?

Intel Raw Accelerator supported by Celeron N2808

$
0
0

Hello,

I used Media SDK 2017 with a Intel Platform Celeron N2808.

I cannot run the sample, sample_camera. 

I get this error:

[ERROR], sts=MFX_ERR_NOT_FOUND(-9), CCameraPipeline::Init, MFXVideoUSER_Load failed at \documents\samples for intel(r) media sdk 2017 for windows 8.0.24.271\sample_camera\src\pipeline_camera.cpp:962.

But I run successfully the other sample, (sample_vpp, sample_decode, sample_encode).

Thanks,

Gilles.

 

2017R3 Interlace Transcode

$
0
0

Hi

On E3-1565L processor, running under 2017R3, I am having an issue with transcoding interlaced hevc input to interlaced AVC  output. Specifically, on the boundaries between B and P fields, dts values step back, by multiples of fps.

The following line reproduces this problem:

sample_multi_transcode -i::h265 ~/Videos/1080i.h265   -gop_size 32  -dist 4   -o::h264 /dev/null -n 100  -b 5000 -hw

However, setting "-dist" to 2, i.e., IPBP..., does not show the same symptoms. Also, raw frames generated by

sample_multi_transcode -i::h265 ~/Videos/1080i.h265 -async 10  -o::raw ~/Videos/out.raw -n 300  -b 5000 -hw,

are properly playable with

ffplay -f rawvideo -pix_fmt yuv420p -s 1920x1080 -i ~/Videos/out.raw

I was wondering if this is a known issue or I am missing something in the command line.

Cheers,


media SDK sample_encode with JPEG, image height is halved

$
0
0

hi there

i am trying sample_encode program in the media SDK  to convert NV12 file to JPEG.  However the output jpeg height is halved. the original image resolution is 1920 x 1080, and the output jpeg exif info  shows resolution 1920 x 540.    In comparision, for the same nv12 input file, ffmpeg converts it properly. 

any advice is appreciated.  thank you. 

attached files: 

1.  image input file:  test-nv12.yuv,  which is generated by ffmpeg from a JPEG image.   the image resolution is 1920 x 1080. 

2.  sample_encode output file:  sample_encode_output.jpg.  the image height is reduced by 50%. 

the file info property of sample_encode_output.jpg  shows that the resolution is 1920 x 540. 

3. ffmpeg convert nv12 to jpeg  output file:  test-ffmpeg.jpg .   this file has no visual difference from the nv12 input. 

media SDK command used : 

.\sample_encode.exe jpeg -q 100 -i .\test-nv12.yuv -o output.jpg -w 1920 -h 1080 -sw -tff -nv12

Encoding Sample Version 8.3.26.0

Input file format       NV12
Output video            JPEG
Source picture:
        Resolution      1920x1088
        Crop X,Y,W,H    0,0,1920,1080
Destination picture:
        Resolution      1920x1088
        Crop X,Y,W,H    0,0,1920,1080
Frame rate      30.00
Bit rate(Kbps)  0
Gop size        100
Ref dist        0
Ref number      0
Idr Interval    0
Target usage    quality
Memory type     system
Media SDK impl          sw
Media SDK version       1.26

Processing started
Frame number: 1
Encoding fps: 377

Transcoding performance on different QuickSync chips

$
0
0

Hi,

we are planning to use Intel QuickSync for live video transcoding from 1080 down to 702,480,360. I measured performance on UHD 630 and Iris Pro Graphics P580 and was found that it's fairly similar performance. I expected the P580 to be noticeably better since it has dedicated video memory and more then twice the executaion units. Any insides on this ?

 

Cheers,

Martin

 

Consumer IR Support

$
0
0

I would like to write code that used the Consumer IR built-in to the NUC 8i5.  Is there any documentation (or better yet existing software) to support this?

Correct parameters for MFXVideoENCODE_Query

$
0
0

MFXVideoENCODE_Query continues to return MFX_ERR_UNSUPPORTED in all combinations of parameters.  Platform is Intel(R) Core(TM) i5-7260U CPU @ 2.20GHz.

My vainfo returns the following information:

libva info: VA-API version 1.3.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_3
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.3 (libva 2.3.0)
vainfo: Driver version: Intel iHD driver - 16.9.git_00f9ae_2018-10-01
vainfo: Supported profile and entrypoints
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointStats
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointFEI
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointFEI
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointFEI
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointFEI
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD

and my relevant code is as follows

    mfxStatus sts = MFX_ERR_NONE;

    // Initialize the Session
    MFXVideoSession session;
    mfxIMPL impl = MFX_IMPL_AUTO_ANY;
    mfxVersion ver = {{0, 1}};
    sts = session.Init(impl, &ver);

    // Initialize the Encoder
    mfxENC = std::make_unique<MFXVideoENCODE>(session);

    // Set parameters for encoder
    mfxVideoParam mfxEncParams;
    memset(&mfxEncParams, 0, sizeof(mfxEncParams));

    mfxEncParams.IOPattern = MFX_IOPATTERN_IN_SYSTEM_MEMORY | MFX_IOPATTERN_OUT_SYSTEM_MEMORY;
    mfxEncParams.mfx.CodecId = MFX_CODEC_AVC;
    mfxEncParams.mfx.CodecLevel = MFX_LEVEL_AVC_1;
    mfxEncParams.mfx.TargetKbps = kbitrate;
    mfxEncParams.mfx.EncodedOrder = true;

    mfxEncParams.mfx.FrameInfo.FourCC = MFX_FOURCC_NV12;
    mfxEncParams.mfx.FrameInfo.Width = f_width;
    mfxEncParams.mfx.FrameInfo.Height = f_height;
    mfxEncParams.mfx.FrameInfo.CropX = 0;
    mfxEncParams.mfx.FrameInfo.CropY = 0;
    mfxEncParams.mfx.FrameInfo.CropW = f_width;
    mfxEncParams.mfx.FrameInfo.CropH = f_height;
    mfxEncParams.mfx.FrameInfo.FrameRateExtN = framerate;
    mfxEncParams.mfx.FrameInfo.FrameRateExtD = 1;
    mfxEncParams.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;

    // Query the parameters to verify
    sts = mfxENC->Query(&mfxEncParams, &mfxEncParams);
    sts = mfxENC->Init(&mfxEncParams);

Are my parameters incorrect, and if so how can I verify the correct parameters for the platform? kbitrate, f_width, f_height, and framerate are external parameters that have been tested at values 5000, 640, 480, 25 respectively.

Intel QuickSync encode from DX11 ARGB textures

$
0
0

Hi, 

I am trying to encode DX11 render target with MFX Encoder and my doubt is, can I feed it directly with MFX_FOURCC_RGB4 or do I have to pass it through VPP to convert to NV12?

Becouse now get no error when setting it up this way and pushing frames in this format but i get 41 bytes constant frame sizes even when i move the image so i guess it is reading empty frames.

Thanks and best regards,

Problem about UV plane using cl_va_api_media_sharing_intel

$
0
0

I use cl_va_api_media_sharing_intel to share the data between VA API and OpenCL API.
I use clCreateFromVA_APIMediaSurfaceINTEL function to create clImageY shares Y plane of input VA surface(NV12) and create clImageUV shares UV plane of input VA surface(NV12). When I run the program on CentOS 7.4 with MediaSDK2018R1, I found that a few lines of data in the clImageUV plane are zero for some videos(For example, column 0 -31 are zeros, the correct UV value stored in column 32, UV32<->Y0,Y1), the Y plane is correct . But I run the same code on CentOS7.2 with MediaSDK2017R3, there is such problem(UV0<->Y1,Y2). Is there any new about the cl_va_api_media_sharing_intel in MediaSDK2018R1.

H264 Compress problem with OpenCV

$
0
0

System information (version)

- OpenCV => 3.4.3-openvino
- Operating System / Platform => Linux Ubuntu 16.04

- Processor => Intel® Pentium(R) CPU N4200 @ 1.10GHz × 4

- Graphics => Intel® HD Graphics 505 (Broxton)

Detailed description
Hello, I'm using Intel Up-Board Squared to develop a programm which needs to compress video by using INTEL_MFX apiPreference to speed up the process.
I've compiled OpenCV with Intel Media SDK backend, and the compiler didn't give any errors to my code.

 int fourcc = cv::VideoWriter::fourcc('H','2','6','4'); cv::VideoWriter writer("filename.mp4", cv::INTEL_MFX, fourcc, 30, cv::Size(1280,720), true);

What interesting is,  when I run the code, it will show a line with `MFX: unsupported extension: /dev/video0`, but the video could be written in a new file.
The video file which was written is very large. A video about 30 seconds can be 70 MB large. I think that the video has been written without compressing with H264.

I also installed Intel Quick Sync Video for ffmpeg.
 

up-board@upboard-UP-APL01:~$ ffmpeg -codecs | grep 'qsv'ffmpeg version n3.4-dev-2711-g587fada Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
  configuration: --enab Code Issues 73 Pull requests 33 Wiki Insightsle-libmfx
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_qsv h264_vdpau h264_cuvid ) (encoders: h264_nvenc h264_qsv h264_v4l2m2m h264_vaapi nvenc nvenc_h264 )
 DEV.L. hevc                 H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_qsv hevc_cuvid ) (encoders: nvenc_hevc hevc_nvenc hevc_qsv hevc_vaapi )
 DEV.L. mpeg2video           MPEG-2 video (decoders: mpeg2video mpegvideo mpegvideo_vdpau mpeg2_v4l2m2m mpeg2_qsv mpeg2_cuvid ) (encoders: mpeg2video mpeg2_qsv mpeg2_vaapi )
 D.V.L. vc1                  SMPTE VC-1 (decoders: vc1 vc1_vdpau vc1_qsv vc1_v4l2m2m vc1_cuvid )
 DEV.L. vp8                  On2 VP8 (decoders: vp8 vp8_v4l2m2m vp8_cuvid vp8_qsv ) (encoders: vp8_v4l2m2m vp8_vaapi )

I think that it's correctly installed.

Is it possible to set parameters for H.264? Probably has it compressed but with a poor parameter? If it is so, then I want to know how to set the parameters for H.264. Otherwise if it did not compress at all... how can I get it work?

Is there anyone who has experience with Media SDK backend for OpenCV? Hope someone can help me.

Greetings,
Yiyun


How to set params for H264 in MFX with OpenCV

$
0
0

Hello, I'm trying to use OpenCV with Intel Media SDK backend to write a programm which can write video by intel gpu with H264 very fast.

I used code from OpenCV tutorial for Intel Media SDK backend.

int fourcc = VideoWriter::fourcc('H', '2', '6', '4');
VideoWriter writer(filename, CAP_INTEL_MFX, fourcc, fps, frameSize, isColor=true);

However, the video files that have been written are very large. For about 1 minute the file is already 300 MB large.

In gstreamer I can set parameters for H.264, and with ffmpeg in terminal I can also set parameters for H.264. But how can I set parameters in OpenCV? Or is there any other reason that the files are so large?

If someone here has experience with Media SDK in OpenCV, please tell me how you have worked with it. Thanks!

Greetings,

Yiyun

2018R1 VPP Scaling on interlace video

$
0
0

Hi 

On a i7-6770HQ, running Mediasdk - commit id: 6ac564ed9ae702220c1a - can't run interlaced transcode and scale at the same time:

sample_multi_transcode -i::h265 ~/Videos/1080i.h265 -o::h264  ~/Videos/1080i_18_R1_L.h264 -gop_size 30  -dist 4  -b 5000 -hw -w 720 -h 576
Multi Transcoding Sample Version 8.3.26.

libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
plugin_loader.h :186 [INFO] Plugin was loaded from GUID: { 0x33, 0xa6, 0x1c, 0x0b, 0x4c, 0x27, 0x45, 0x4c, 0xa8, 0xd8, 0x5d, 0xde, 0x75, 0x7c, 0x6f, 0x8e } (Intel (R) Media SDK HW plugin for HEVC DECODE)
ERROR: Field weaving or Field Splitting is enabled according to streams parameters. Other VPP filters cannot be used in this mode, please remove corresponding options.

[ERROR], sts=MFX_ERR_UNSUPPORTED(-3), Init, VPPPreInit failed at /home/inca/buildmedia/MediaSDK/samples/sample_multi_transcode/src/pipeline_transcode.cpp:3735

[ERROR], sts=MFX_ERR_UNSUPPORTED(-3), Init, pThreadPipeline->pPipeline->Init failed at /home/inca/buildmedia/MediaSDK/samples/sample_multi_transcode/src/sample_multi_transcode.cpp:302
plugin_loader.h :212 [INFO] MFXBaseUSER_UnLoad(session=0x0x564beddd5200), sts=0

I am wondering if this is a limitation with the sample code, or the library?

Cheers,

2018R1 interlaced hevc encode

$
0
0

Hi

On a i7-6770HQ, running Mediasdk - commit id: 6ac564ed9ae702220c1a - took an interlaced hevc source and transcoded to avc interlaced. Using the avc interlaced output, once again, performed another transcode operation to hevc. The resultant stream; however, has its pic_struct=0 and source_scan_type=1, i.e., it's progressive. Am I missing something in the following commands:

 

sample_multi_transcode -i::h265 ~/Videos/1080i.h265 -o::h264  ~/Videos/1080i_18_R1_L.h264 -gop_size 30  -dist 4  -b 5000 -hw 

sample_multi_transcode -i::h264 ~/Videos/1080i_18_R1_L.h264 -o::h265  ~/Videos/1080i_18_R1_L2.h265 -gop_size 30  -dist 4  -b 5000 -hw

Cheers,

H264 Decode : Only decode IFrames

$
0
0

Hello There,

Is it possible to only decode the iframes from an h264 file ?

Thanks,

Aaron

MEDIA SDK 8.3.26 - sample_encode: MFX_ERR_NULL_PTR(-2), MFX_ERR_MEMORY_ALLOC(-4)

$
0
0

Hi there I fould like to ask here for help, I just trying to try sample_encoder from Media SDK in version 8.3.26. But I see only: 

./sample_encode h265 -g 120 -r 1 -u veryslow -b 1500 -f 60 -n 1080 -i ~/input.yuv -o output.h265 -w 1920 -h 1080 -hw
plugin_loader.h :186 [INFO] Plugin was loaded from GUID: { 0x6f, 0xad, 0xc7, 0x91, 0xa0, 0xc2, 0xeb, 0x47, 0x9a, 0xb6, 0xdc, 0xd5, 0xea, 0x9d, 0xa3, 0x47 } (Intel (R) Media SDK HW plugin for HEVC ENCODE)

[ERROR], sts=MFX_ERR_NULL_PTR(-2), Init, m_fSource pointer is NULL at /home/jirakj/IntelMediaSDK/samples/sample_common/src/sample_utils.cpp:468

[ERROR], sts=MFX_ERR_NULL_PTR(-2), InitFileWriter,  failed at /home/jirakj/IntelMediaSDK/samples/sample_encode/src/pipeline_encode.cpp:1169

[ERROR], sts=MFX_ERR_NULL_PTR(-2), InitFileWriters, InitFileWriter failed at /home/jirakj/IntelMediaSDK/samples/sample_encode/src/pipeline_encode.cpp:1230

[ERROR], sts=MFX_ERR_NULL_PTR(-2), Init, InitFileWriters failed at /home/jirakj/IntelMediaSDK/samples/sample_encode/src/pipeline_encode.cpp:1423

[ERROR], sts=MFX_ERR_NULL_PTR(-2), main, pPipeline->Init failed at /home/jirakj/IntelMediaSDK/samples/sample_encode/src/sample_encode.cpp:1294
Frame number: 0
plugin_loader.h :212 [INFO] MFXBaseUSER_UnLoad(session=0x0x55ddc43f7d40), sts=0

After second try to run:

plugin_loader.h :186 [INFO] Plugin was loaded from GUID: { 0x6f, 0xad, 0xc7, 0x91, 0xa0, 0xc2, 0xeb, 0x47, 0x9a, 0xb6, 0xdc, 0xd5, 0xea, 0x9d, 0xa3, 0x47 } (Intel (R) Media SDK HW plugin for HEVC ENCODE)

[ERROR], sts=MFX_ERR_MEMORY_ALLOC(-4), CreateAllocator, CreateHWDevice failed at /home/jirakj/IntelMediaSDK/samples/sample_encode/src/pipeline_encode.cpp:1022

[ERROR], sts=MFX_ERR_MEMORY_ALLOC(-4), Init, CreateAllocator failed at /home/jirakj/IntelMediaSDK/samples/sample_encode/src/pipeline_encode.cpp:1432

[ERROR], sts=MFX_ERR_MEMORY_ALLOC(-4), main, pPipeline->Init failed at /home/jirakj/IntelMediaSDK/samples/sample_encode/src/sample_encode.cpp:1294
Frame number: 0
plugin_loader.h :212 [INFO] MFXBaseUSER_UnLoad(session=0x0x55d2dccc2d40), sts=0

Can any one help me solve this kind of problems? From source code is not clear what is wrong.

 

Thank you in advance for help.

 

Jakub 

 

Viewing all 2185 articles
Browse latest View live