- Ubuntu 18.04
- NVIDIA driver 460.32.03
- NVIDIA Video Codec SDK 11.0.10
- GStreamer 1.14.5
Build FFmpeg with Intel's QSV enablement on an Intel-based validation test-bed:
Build platform: Ubuntu 18.04LTS
Ensure the platform is up to date:
sudo apt update && sudo apt -y upgrade && sudo apt -y dist-upgrade
Install baseline dependencies first (inclusive of OpenCL headers+)
| #!/bin/bash | |
| # Set your target branch | |
| BRANCH="1.14.2" | |
| exec > >(tee build-gstreamer.log) | |
| exec 2>&1 | |
| [ ! -d orc ] && git clone git://anongit.freedesktop.org/git/gstreamer/orc | |
| [ ! -d gstreamer ] && git clone git://anongit.freedesktop.org/git/gstreamer/gstreamer |
| import Vue from 'vue' | |
| import Vuex from 'vuex' | |
| Vue.use(Vuex) | |
| const incrementPlugin = store => { | |
| store.subscribe((mutation, state) => { | |
| if(mutation.type === "showCount") { | |
| state.count++ | |
| } |
| #!/bin/bash | |
| # An set of disks to ignore from partitioning and formatting | |
| BLACKLIST="/dev/sda|/dev/sdb" | |
| # Base directory to hold the data* files | |
| DATA_BASE="/mnt" | |
| usage() { | |
| echo "Usage: $(basename $0) <new disk>" | |
| } |
| diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c | |
| index a3a2ef5..1691d15 100644 | |
| --- a/libavcodec/nvenc.c | |
| +++ b/libavcodec/nvenc.c | |
| @@ -1157,7 +1157,7 @@ static av_cold int nvenc_setup_surfaces(AVCodecContext *avctx) | |
| NvencContext *ctx = avctx->priv_data; | |
| int i, res; | |
| int num_mbs = ((avctx->width + 15) >> 4) * ((avctx->height + 15) >> 4); | |
| - ctx->nb_surfaces = FFMAX((num_mbs >= 8160) ? 32 : 48, | |
| + ctx->nb_surfaces = FFMAX((num_mbs >= 8160) ? 8 : 12, |
This gist will help you to compile ffmpeg with NVENC, QSV, VAAPI, VDPAU, and OpenCL support.
nVidia
nvresizepatch is outdated and not more compatible to the latest version of FFmpeg, so it's not included in this documentation.
(even if I've passed a lot of time at trying to make it compile... without any success)
Please don't rely on this page: https://developer.nvidia.com/ffmpeg, the implementation is a hack and was never been added to the main FFmpeg tree.
Spawning multiple ffmpeg processes with xargs:
On standard NVIDIA GPUs (Not the Quadros and Tesla lines), NVENC encodes are limited to two simultaneous sessions. The sample below illustrates how to pass a list of AVI files to ffmpeg and encode them to HEVC on two encode sessions:
$ find Videos/ -type f -name \*.avi -print | sed 's/.avi$//' |\
xargs -n 1 -I@ -P 2 ffmpeg -i "@.avi" -c:a aac -c:v hevc_nvenc "@.mp4"
This will find all files with the ending .avi in the directory Videos/ and transcode them into HEVC/H265+AAC files with the ending .mp4. The noteworthy part here is the -P 2 to xargs, which starts up to two processes in parallel.
#前言 由于大家都懂的, 国内使用go get的时候, 经常会各种失败, 如果有vpn的话, 打开vpn, 问题就解决了, 但vpn其实挺不灵活的.
相对来说shadowsock则灵活得多.
#解决方案 shadowsock + Privoxy
思路就是, 使用shadowsock建立一个本地sock5代理, 但因为go get 需要http代理, 所以需要使用privoxy把sock5代理转为http代理.
| /* | |
| Easy way to "transfer" any native objects with the Drag & Drop API | |
| @ricardobeat | |
| $('.draggable').on('dragstart', function(e){ | |
| App.dragData.set(e, { | |
| type: 'blablabla' | |
| , items: [1,2,3] | |
| }) |