1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
# `legacy-encode` Sample
This sample shows how to use the oneAPI Video Processing Library (oneVPL) to
perform a simple video encode.
| Optimized for | Description
|----------------- | ----------------------------------------
| OS | Ubuntu* 20.04; Windows* 10
| Hardware | Compatible with Intel® oneAPI Video Processing Library(oneVPL) GPU implementation, which can be found at https://github.com/oneapi-src/oneVPL-intel-gpu
| | and Intel® Media SDK GPU implementation, which can be found at https://github.com/Intel-Media-SDK/MediaSDK
| Software | Intel® oneAPI Video Processing Library(oneVPL) CPU implementation
| What You Will Learn | How to use oneVPL to encode an raw video file to H.265
| Time to Complete | 5 minutes
## Purpose
This sample is a command line application that takes a file containing a raw
native format video elementary stream as an argument, encodes it with oneVPL and
writes the encoded output to `out.h265` in H.265 format.
Native raw frame format: CPU=I420, GPU=NV12.
## Key Implementation details
| Configuration | Default setting
| ----------------- | ----------------------------------
| Target device | CPU
| Input format | I420
| Output format | H.265 video elementary stream
| Output resolution | same as input
## License
This code sample is licensed under MIT license.
## Building the `hello-encode` Program
### On a Linux* System
Perform the following steps:
1. Install the prerequisite software. To build and run the sample you need to
install prerequisite software and set up your environment:
- Intel® oneAPI Base Toolkit for Linux*
- [CMake](https://cmake.org)
2. Set up your environment using the following command.
```
source <oneapi_install_dir>/setvars.sh
```
Here `<oneapi_install_dir>` represents the root folder of your oneAPI
installation, which is `/opt/intel/oneapi/` when installed as root, and
`~/intel/oneapi/` when installed as a normal user. If you customized the
installation folder, it is in your custom location.
3. Build the program using the following commands:
```
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
```
4. Run the program using the following command:
```
./legacy-encode -sw -i ../../../content/cars_320x240.i420 -w 320 -h 240
```
### On a Windows* System Using Visual Studio* Version 2017 or Newer
#### Building the program using CMake
1. These instructions assume you can read and write to the location
the examples are stored. If the examples have been installed in a
protected folder such as "Program Files" copy the entire `examples`
folder to a location with Read/Write access such as the Desktop
(%USERPROFILE%\Desktop) and resume these instruictions from that copy.
2. Install the prerequisite software. To build and run the sample you need to
install prerequisite software and set up your environment:
- Intel® oneAPI Base Toolkit for Windows*
- [CMake](https://cmake.org)
3. Set up your environment using the following command.
```
<oneapi_install_dir>\setvars.bat
```
Here `<oneapi_install_dir>` represents the root folder of your oneAPI
installation, which is which is `C:\Program Files (x86)\Intel\oneAPI\`
when installed using default options. If you customized the installation
folder, the `setvars.bat` is in your custom location. Note that if a
compiler is not part of your oneAPI installation you should run in a Visual
Studio 64-bit command prompt.
4. Build the program using the following commands:
```
mkdir build
cd build
cmake ..
cmake --build . --config Release
```
5. Run the program using the following command:
```
Release\legacy-encode -sw -i ..\..\..\content\cars_320x240.i420 -w 320 -h 240
```
## Running the Sample
### Example of Output
```
Encoding hello-encode/content/cars_320x240.i420 -> out.h265
Encoded 30 frames
```
You can find the output file `out.h265` in the build directory.
You can display the output with a video player that supports raw streams such as
FFplay. You can use the following command to display the output with FFplay:
```
ffplay out.h265
```
|