Hi, Recently I was testing and comparing different bitrates and resolutions encodes of VP9 and HEVC using FFMPEG and x265 respectively, now what I need to prove is the VP9 (profile 2) of 10 bit, I understand that I need a version of ffmpeg configured with --enable-vp9-highbitdepth, but before getting into that I would like to try other possibilities.
Searching the forum I found this post https://forum.videohelp.com/threads/368407-Anyone-tested-VP9-10bit where they use ffmpeg and vpxenc.
The command line that I am using is the following:
The following error appears:ffmpeg.exe -i "video.m2ts" -s 3840x2160 -r 23.976 -an -sn -f rawvideo -pix_fmt yuv444p10le - | vpxenc.exe -v --bit-depth = 10 --input-bit-depth = 10 --i420 --profile = 2 --passes = 1 --pass = 1 --good --codec = vp9 --fps = 24000/1001 -w 3840 -h 2160 --target-bitrate = 50000 - -o "output.webm"
I tried the latest version of ffmpeg and I get the same error, if someone could help me with something.ffmpeg version N-83372-g08b0981 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 46.100 / 55. 46.100
libavcodec 57. 75.100 / 57. 75.100
libavformat 57. 66.101 / 57. 66.101
libavdevice 57. 2.100 / 57. 2.100
libavfilter 6. 72.100 / 6. 72.100
libswscale 4. 3.101 / 4. 3.101
libswresample 2. 4.100 / 2. 4.100
libpostproc 54. 2.100 / 54. 2.100
Input #0, mpegts, from '00002.m2ts':
Duration: 00:01:03.61, start: 4200.000000, bitrate: 63898 kb/s
Program 1
Stream #0:0[0x1011]: Video: hevc (Main 10) (HEVC / 0x43564548), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 23.98 tbc
Output #0, rawvideo, to 'pipe:':
Metadata:
encoder : Lavf57.66.101
Stream #0:0: Video: rawvideo (Y3[0][10] / 0xA003359), yuv444p10le, 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc
Metadata:
encoder : Lavc57.75.100 rawvideo
Stream mapping:
Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native))
Press [q] to stop, [?] for help
Error: Unrecognized option --bit-depth=10
Usage: vpxenc <options> -o dst_filename src_filename
Options:
-D, --debug Debug mode (makes output deterministic)
-o <arg>, --output=<arg> Output filename
--codec=<arg> Codec to use
-p <arg>, --passes=<arg> Number of passes (1/2)
--pass=<arg> Pass to execute (1/2)
--fpf=<arg> First pass statistics file name
--limit=<arg> Stop encoding after n input frames
--skip=<arg> Skip the first n input frames
-d <arg>, --deadline=<arg> Deadline per frame (usec)
--best Use Best Quality Deadline
--good Use Good Quality Deadline
--rt Use Realtime Quality Deadline
-q, --quiet Do not print encode progress
-v, --verbose Show encoder parameters
--psnr Show PSNR in status line
--webm Output WebM (default when WebM IO is enabled)
--ivf Output IVF
-P, --output-partitions Makes encoder output partitions. Requires IVF output!
--q-hist=<arg> Show quantizer histogram (n-buckets)
--rate-hist=<arg> Show rate histogram (n-buckets)
--disable-warnings Disable warnings about potentially incorrect encode settings.
-y, --disable-warning-prompt Display warnings, but do not prompt user to continue.
--test-decode=<arg> Test encode/decode mismatch
off, fatal, warn
Encoder Global Options:
--yv12 Input file is YV12
--i420 Input file is I420 (default)
--i422 Input file is I422
--i444 Input file is I444
--i440 Input file is I440
-u <arg>, --usage=<arg> Usage profile number to use
-t <arg>, --threads=<arg> Max number of threads to use
--profile=<arg> Bitstream profile number to use
-w <arg>, --width=<arg> Frame width
-h <arg>, --height=<arg> Frame height
--stereo-mode=<arg> Stereo 3D video format
mono, left-right, bottom-top, top-bottom, right-left
--timebase=<arg> Output timestamp precision (fractional seconds)
--fps=<arg> Stream frame rate (rate/scale)
--error-resilient=<arg> Enable error resiliency features
--lag-in-frames=<arg> Max number of frames to lag
Rate Control Options:
--drop-frame=<arg> Temporal resampling threshold (buf %)
--resize-allowed=<arg> Spatial resampling enabled (bool)
--resize-width=<arg> Width of encoded frame
--resize-height=<arg> Height of encoded frame
--resize-up=<arg> Upscale threshold (buf %)
--resize-down=<arg> Downscale threshold (buf %)
--end-usage=<arg> Rate control mode
vbr, cbr, cq, q
--target-bitrate=<arg> Bitrate (kbps)
--min-q=<arg> Minimum (best) quantizer
--max-q=<arg> Maximum (worst) quantizer
--undershoot-pct=<arg> Datarate undershoot (min) target (%)
--overshoot-pct=<arg> Datarate overshoot (max) target (%)
--buf-sz=<arg> Client buffer size (ms)
--buf-initial-sz=<arg> Client initial buffer size (ms)
--buf-optimal-sz=<arg> Client optimal buffer size (ms)
Twopass Rate Control Options:
--bias-pct=<arg> CBR/VBR bias (0=CBR, 100=VBR)
--minsection-pct=<arg> GOP min bitrate (% of target)
--maxsection-pct=<arg> GOP max bitrate (% of target)
Keyframe Placement Options:
--kf-min-dist=<arg> Minimum keyframe interval (frames)
--kf-max-dist=<arg> Maximum keyframe interval (frames)
--disable-kf Disable keyframe placement
VP8 Specific Options:
--cpu-used=<arg> CPU Used (-16..16)
--auto-alt-ref=<arg> Enable automatic alt reference frames
--noise-sensitivity=<arg> Noise sensitivity (frames to blur)
--sharpness=<arg> Loop filter sharpness (0..7)
--static-thresh=<arg> Motion detection threshold
--token-parts=<arg> Number of token partitions to use, log2
--arnr-maxframes=<arg> AltRef max frames (0..15)
--arnr-strength=<arg> AltRef filter strength (0..6)
--arnr-type=<arg> AltRef type
--tune=<arg> Material to favor
psnr, ssim
--cq-level=<arg> Constant/Constrained Quality level
--max-intra-rate=<arg> Max I-frame bitrate (pct)
--gf-cbr-boost=<arg> Boost for Golden Frame in CBR mode (pct)
--screen-content-mode=<arg Screen content mode
VP9 Specific Options:
--cpu-used=<arg> CPU Used (-8..8)
--auto-alt-ref=<arg> Enable automatic alt reference frames
--sharpness=<arg> Loop filter sharpness (0..7)
--static-thresh=<arg> Motion detection threshold
--tile-columns=<arg> Number of tile columns to use, log2
--tile-rows=<arg> Number of tile rows to use, log2 (set to 0 while threads > 1)
--arnr-maxframes=<arg> AltRef max frames (0..15)
--arnr-strength=<arg> AltRef filter strength (0..6)
--arnr-type=<arg> AltRef type
--tune=<arg> Material to favor
psnr, ssim
--cq-level=<arg> Constant/Constrained Quality level
--max-intra-rate=<arg> Max I-frame bitrate (pct)
--max-inter-rate=<arg> Max P-frame bitrate (pct)
--gf-cbr-boost=<arg> Boost for Golden Frame in CBR mode (pct)
--lossless=<arg> Lossless mode (0: false (default), 1: true)
--frame-parallel=<arg> Enable frame parallel decodability features
--aq-mode=<arg> Adaptive quantization mode (0: off (default), 1: variance 2: complexity, 3: cyclic refresh, 4: equator360)
--alt-ref-aq=<arg> Special adaptive quantization for the alternate reference frames.
--frame-boost=<arg> Enable frame periodic boost (0: off (default), 1: on)
--noise-sensitivity=<arg> Noise sensitivity (frames to blur)
--tune-content=<arg> Tune content type
default, screen
--color-space=<arg> The color space of input content:
unknown, bt601, bt709, smpte170, smpte240, bt2020, reserved, sRGB
--min-gf-interval=<arg> min gf/arf frame interval (default 0, indicating in-built behavior)
--max-gf-interval=<arg> max gf/arf frame interval (default 0, indicating in-built behavior)
--target-level=<arg> Target level (255: off (default); 0: only keep level stats; 10: level 1.0; 11: level 1.1; ... 62: level 6.2)
--row-mt=<arg> Enable row based non-deterministic multi-threading in VP9
Stream timebase (--timebase):
The desired precision of timestamps in the output, expressed
in fractional seconds. Default is 1/1000.
Included encoders:
vp8 - WebM Project VP8 Encoder v1.6.1-510-gc530208ae
vp9 - WebM Project VP9 Encoder v1.6.1-510-gc530208ae (default)
Use --codec to switch to a non-default encoder.
av_interleaved_write_frame(): Broken pipe
Error writing trailer of pipe:: Broken pipeframe= 1 fps=0.0 q=-0.0 Lsize= 48600kB time=00:00:00.04 bitrate=9545679.5kbits/s speed=0.0721x
video:48600kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
Conversion failed!
PD: Sorry for my English
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 4 of 4
Thread
-
-
LigH's VPX builds offer 10 bit encoding.
ffmpeg -i "INPUT" -strict -1 -pix_fmt yuv420p10le -f yuv4mpegpipe - | vpxenc --codec=vp9 --fpf=STATSFILE --pass=1 --passes=2 --profile=2 --bit-depth=10 -o "OUTPUT.WEBM" - -
Or build your own ffmpeg .exe for Windows (cross-compiling) in an ubuntu VM using https://github.com/DeadSix27/python_cross_compile_script
(you would need to edit and add the --enable-vp9-highbitdepth setting to the 'libvpx' configure first in your local copy of the .py file)
It's easy, the free vmware player can create VMs and you can auto-install the latest ubuntu, then follow the instructions at that site and sit back and watch it happen over a few cuppas. It even comes with and option to build a ffmpeg .exe with OpenCL. It's great. As a side-result you also get the latest vpxenc and vpxdec built too. -
Code:
Error: Unrecognized option --bit-depth=10 Usage: vpxenc <options> -o dst_filename src_filename
Using Media Autobuild Suite you could build vpxenc, ffmpeg and a bunch of other tools without having to use a VM.
alternatively LigHs builds which sneaker linked to should be fine too.
Cu Selurusers currently on my ignore list: deadrats, Stears555
Similar Threads
-
How to play 10bit videos and be sure to get true 10bit color on the screen?
By flashandpan007 in forum Software PlayingReplies: 6Last Post: 7th Apr 2017, 19:02 -
FFMPEG x265 10bit and virtualdub x265 10bit settings
By lilycarolyn in forum Video ConversionReplies: 11Last Post: 6th Jun 2016, 14:44 -
How do I convert 1080p 10bit mkv's to 720p 10bit?
By fighuass in forum Video ConversionReplies: 6Last Post: 19th Nov 2015, 02:34 -
Anyone tested VP9 10bit?
By Selur in forum Video ConversionReplies: 19Last Post: 15th Jun 2015, 03:28 -
Where can I find VP9 encoders or a transcoder software which has VP9 too?
By Stears555 in forum Video ConversionReplies: 8Last Post: 10th Sep 2013, 16:51