Page 1 of 1
VLC transcoding from anything to HEVC... encoder missing?
Posted: 01 May 2014 15:01
by David7578
Hi,
I wanted to try to use HEVC for a transcoding task.
I downloaded a nighlty build (vlc-2.2.0-git-20140430-0402)
To start from something simple, I used the built-in vlc functions and got those parameters:
Code: Select all
:sout=#transcode{vcodec=hevc,scale=0.25}:http{mux=ffmpeg{mux=flv},dst=:8080/} :sout-keep
Then I got that error:
It seems your Libav/FFmpeg (libavcodec) installation lacks the following encoder:
MPEG-H Part2/HEVC (H.265).
I get the same error with any nightly I get, I tried multiple ones in the 2.1 and 2.2 branch. Well some builds do not even display the error, but the resulting file is only an audio extraction.
Searching on the forums, I maybe misinterpreted the fact that from 2.1 (and even more 2.2) the encoder was available.
But maybe I should use the command line and use other parameters?
If so, is there a help file with some parameters available somewhere?
I thank you for any useful help provided.
Re: VLC transcoding from anything to HEVC... encoder missing
Posted: 04 May 2014 08:25
by David7578
I've been trying to update to latest FFmpeg since the error message states it doesn't come from VLC.
But it seems I'm not skilled enough to understand what happens... and what to do to correct my problem.
Any help appreciated.
Thanks
Re: VLC transcoding from anything to HEVC... encoder missing
Posted: 04 May 2014 12:54
by David7578
So "vlc --list" shows x265 as an encoder.
But "vlc -p x265 --advanced" says there's no module by that name.
Can someone just drop a word to confirm there's no usable x265 encoder in vlc yet?
Re: VLC transcoding from anything to HEVC... encoder missing
Posted: 04 May 2014 19:46
by Jean-Baptiste Kempf
You cannot use x265 in flv!
You should share your logs.
Re: VLC transcoding from anything to HEVC... encoder missing
Posted: 04 May 2014 21:15
by David7578
Thanks for the reply.
Regarding the flv settings, well at the time I wanted to try realtime transcoding, and adjusting size/parameters if needed. I used the gui that got me those settings.
But even a file convert gives the same error.
Example:
Code: Select all
vlc.exe "input.h264" :sout=#transcode{vcodec=hevc,scale=0.25}:file{dst=test.mp4} :sout-keep
Short Log (verbose 1)
Code: Select all
-- logger module started --
logger: VLC media player - 2.2.0-git-20140504-0402 Weatherwax
logger: Copyright © 1996-2014 the VideoLAN team
logger:
Attention : si vous n'avez plus accès à l'interface graphique, ouvrez une invite de commande, allez dans le dossier où vous avez installé VLC, et lancez « vlc -I qt ».
logger: using logger.
-- logger module started --
core: Lancement de vlc avec l'interface par défaut. Utilisez « cvlc » pour démarrer VLC sans interface.
core error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
stream_out_transcode: output interval 41708 (base 1001)
x265 error: Height (118) must be a multiple of 8
avcodec error: cannot find encoder MPEG-H Part2/HEVC (H.265)
*** Your Libav/FFmpeg installation is crippled. ***
*** Please check with your Libav/FFmpeg packager. ***
*** This is NOT a VLC media player issue. ***
stream_out_transcode error: cannot find video encoder (module:any fourcc:hevc)
core error: cannot continue streaming due to errors
-- logger module stopped --
-- logger module stopped --
Long log (verbose 2)
Code: Select all
-- logger module started --
core debug: VLC media player - 2.2.0-git-20140504-0402 Weatherwax
core debug: Copyright © 1996-2014 the VideoLAN team
core debug: revision 2.1.0-git-3096-g57b5d92
core debug: configured with ../extras/package/win32/../../../configure '--enable-update-check' '--enable-lua' '--enable-faad' '--enable-flac' '--enable-theora' '--enable-twolame' '--enable-quicktime' '--enable-avcodec' '--enable-merge-ffmpeg' '--enable-dca' '--enable-mpc' '--enable-libass' '--enable-x264' '--enable-schroedinger' '--enable-realrtsp' '--enable-live555' '--enable-dvdread' '--enable-shout' '--enable-goom' '--enable-caca' '--disable-sdl' '--enable-qt' '--enable-skins2' '--enable-sse' '--enable-mmx' '--enable-libcddb' '--enable-zvbi' '--disable-telx' '--enable-nls' '--host=x86_64-w64-mingw32' '--enable-debug' '--disable-gnutls' 'host_alias=x86_64-w64-mingw32'
core debug: using interface module "logger"
core debug: looking for interface module matching "logger,none": 16 candidates
logger: VLC media player - 2.2.0-git-20140504-0402 Weatherwax
logger: Copyright © 1996-2014 the VideoLAN team
logger:
Attention : si vous n'avez plus accès à l'interface graphique, ouvrez une invite de commande, allez dans le dossier où vous avez installé VLC, et lancez « vlc -I qt ».
logger: using logger.
logger debug: opening logfile `vlc-log.txt'
-- logger module started --
core debug: VLC media player - 2.2.0-git-20140504-0402 Weatherwax
core debug: Copyright © 1996-2014 the VideoLAN team
core debug: revision 2.1.0-git-3096-g57b5d92
core debug: configured with ../extras/package/win32/../../../configure '--enable-update-check' '--enable-lua' '--enable-faad' '--enable-flac' '--enable-theora' '--enable-twolame' '--enable-quicktime' '--enable-avcodec' '--enable-merge-ffmpeg' '--enable-dca' '--enable-mpc' '--enable-libass' '--enable-x264' '--enable-schroedinger' '--enable-realrtsp' '--enable-live555' '--enable-dvdread' '--enable-shout' '--enable-goom' '--enable-caca' '--disable-sdl' '--enable-qt' '--enable-skins2' '--enable-sse' '--enable-mmx' '--enable-libcddb' '--enable-zvbi' '--disable-telx' '--enable-nls' '--host=x86_64-w64-mingw32' '--enable-debug' '--disable-gnutls' 'host_alias=x86_64-w64-mingw32'
core debug: using interface module "logger"
core debug: adding item `input.h264' ( file:///C:/vlc-2.2.0-git-20140504-0402/input.h264 )
core debug: Creating an input for 'icnopruet .dhe2b6u4g: looking for interface module matching "hotkeys,none": 16 candidates
'
core debug: using interface module "hotkeys"
core debug: looking for interface module matching "globalhotkeys,none": 16 candidates
core debug: using interface module "win32"
core: Lancement de vlc avec l'interface par défaut. Utilisez « cvlc » pour démarrer VLC sans interface.
core debug: looking for interface module matching "any": 16 candidates
core debug: looking for extension module matching "any": 1 candidates
lua debug: Opening Lua Extension module
lua debug: Trying Lua scripts in C:\Users\David7Pro\AppData\Roaming\vlc\lua\extensions
lua debug: Trying Lua scripts in C:\vlc-2.2.0-git-20140504-0402\lua\extensions
lua debug: Trying Lua playlist script C:\vlc-2.2.0-git-20140504-0402\lua\extensions\VLSub.luac
lua debug: Scanning Lua script C:\vlc-2.2.0-git-20140504-0402\lua\extensions\VLSub.luac
lua debug: Script C:\vlc-2.2.0-git-20140504-0402\lua\extensions\VLSub.luac has the following capability flags: 0x5
core debug: using extension module "lua"
core debug: using interface module "qt4"
core debug: processing request item: null, node: Liste de lecture, skip: 0
core debug: rebuilding array of current - root Liste de lecture
core debug: rebuild done - 1 items, index -1
core debug: starting playback of the new playlist item
core debug: resyncing on input.h264
core debug: input.h264 is at 0
core debug: creating new input thread
core debug: Creating an input for 'input.h264'
core debug: using sout chain=`transcode{vcodec=hevc,scale=0.25}:file{dst=test.mp4}'
core debug: stream=`file'
core debug: looking for sout stream module matching "file": 22 candidates
core debug: set config option: sout-standard-dst to test.mp4
core debug: looking for sout access module matching "file": 8 candidates
qt4 debug: IM: Setting an input
access_output_file debug: file access output opened (test.mp4)
core debug: using sout access module "access_output_file"
core debug: looking for sout mux module matching "mp4": 10 candidates
mux_mp4 debug: Mp4 muxer opened
core debug: using sout mux module "mux_mp4"
stream_out_standard debug: using `file/mp4://test.mp4'
core debug: using sout stream module "stream_out_standard"
core debug: stream=`transcode'
core debug: looking for sout stream module matching "transcode": 22 candidates
core debug: set config option: sout-transcode-vcodec to hevc
core debug: set config option: sout-transcode-scale to 0.25
stream_out_transcode debug: Checking video codec mapping for hevc got hevc
stream_out_transcode debug: codec video=hevc 0x0 scaling: 0.250000 0kb/s
core debug: using sout stream module "stream_out_transcode"
core debug: using timeshift granularity of 50 MiB, in path 'c:\Temp'
core debug: `file:///C:/vlc-2.2.0-git-20140504-0402/input.h264' gives access `file' demux `' path `/C:/vlc-2.2.0-git-20140504-0402/input.h264'
core debug: specified demux `any'
core debug: creating demux: access='file' demux='any' location='/C:/vlc-2.2.0-git-20140504-0402/input.h264' file='C:\vlc-2.2.0-git-20140504-0402\input.h264'
core debug: looking for access_demux module matching "file": 12 candidates
core debug: no access_demux modules matched
core debug: creating access 'file' location='/C:/vlc-2.2.0-git-20140504-0402/input.h264', path='C:\vlc-2.2.0-git-20140504-0402\input.h264'
core debug: looking for access module matching "file": 19 candidates
filesystem debug: opening file `C:\vlc-2.2.0-git-20140504-0402\input.h264'
core debug: using access module "filesystem"
core debug: Using stream method for AStream*
core debug: starting pre-buffering
core debug: received first data after 0 ms
core debug: pre-buffering done 1024 bytes in 0s - 1000000 KiB/s
core debug: looking for stream_filter module matching "any": 6 candidates
core debug: no stream_filter modules matched
core debug: looking for stream_filter module matching "record": 6 candidates
core debug: using stream_filter module "record"
core debug: creating demux: access='file' demux='any' location='/C:/vlc-2.2.0-git-20140504-0402/input.h264' file='C:\vlc-2.2.0-git-20140504-0402\input.h264'
core debug: looking for demux module matching "h264": 65 candidates
h264 debug: using 25.00 fps
core debug: looking for packetizer module matching "any": 22 candidates
core debug: using packetizer module "packetizer_h264"
core debug: using demux module "h264"
core debug: meta ok for (null), need to fetch art
core debug: looking for meta fetcher module matching "any": 1 candidates
lua debug: Trying Lua scripts in C:\Users\David7Pro\AppData\Roaming\vlc\lua\meta\fetcher
lua debug: Trying Lua scripts in C:\vlc-2.2.0-git-20140504-0402\lua\meta\fetcher
lua debug: Trying Lua playlist script C:\vlc-2.2.0-git-20140504-0402\lua\meta\fetcher\tvrage.luac
core debug: using meta fetcher module "lua"
core debug: removing module "lua"
core debug: searching art for input.h264
core debug: looking for art finder module matching "any": 2 candidates
lua debug: Trying Lua scripts in C:\Users\David7Pro\AppData\Roaming\vlc\lua\meta\art
lua debug: Trying Lua scripts in C:\vlc-2.2.0-git-20140504-0402\lua\meta\art
lua debug: Trying Lua playlist script C:\vlc-2.2.0-git-20140504-0402\lua\meta\art\00_musicbrainz.luac
lua debug: Trying Lua playlist script C:\vlc-2.2.0-git-20140504-0402\lua\meta\art\01_googleimage.luac
lua debug: Trying Lua playlist script C:\vlc-2.2.0-git-20140504-0402\lua\meta\art\02_frenchtv.luac
lua debug: Trying Lua playlist script C:\vlc-2.2.0-git-20140504-0402\lua\meta\art\03_lastfm.luac
core debug: no art finder modules matched
core debug: art not found for input.h264
core debug: looking for a subtitle file in C:\vlc-2.2.0-git-20140504-0402\
core debug: starting in sync mode
core debug: looking for meta reader module matching "any": 2 candidates
lua debug: Trying Lua scripts in C:\Users\David7Pro\AppData\Roaming\vlc\lua\meta\reader
lua debug: Trying Lua scripts in C:\vlc-2.2.0-git-20140504-0402\lua\meta\reader
lua debug: Trying Lua playlist script C:\vlc-2.2.0-git-20140504-0402\lua\meta\reader\filename.luac
core debug: no meta reader modules matched
core debug: `file:///C:/vlc-2.2.0-git-20140504-0402/input.h264' successfully opened
packetizer_h264 debug: found NAL_SPS (sps_id=0)
packetizer_h264 debug: found NAL_PPS (pps_id=0 sps_id=0)
core debug: selecting program id=0
core debug: looking for packetizer module matching "any": 22 candidates
core debug: using packetizer module "packetizer_h264"
core error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
core debug: switching to async mode
core debug: Buffering 0%
core debug: Buffering 13%
core debug: Buffering 26%
core debug: Buffering 40%
core debug: Buffering 53%
core debug: Buffering 66%
core debug: Buffering 80%
core debug: Buffering 93%
core debug: Stream buffering done (320 ms in 4 ms)
packetizer_h264 debug: found NAL_SPS (sps_id=0)
packetizer_h264 debug: found NAL_PPS (pps_id=0 sps_id=0)
core debug: adding a new sout input (sout_input:00000000003bf470)
stream_out_transcode debug: creating video transcoding from fcc=`h264' to fcc=`hevc'
core debug: looking for decoder module matching "any": 43 candidates
avcodec debug: CPU flags: 0x010011db
avcodec debug: trying to use direct rendering
avcodec debug: allowing 3 thread(s) for decoding
avcodec debug: avcodec codec (H264 - MPEG-4 AVC (part 10)) started
avcodec debug: using frame thread mode with 3 threads
core debug: using decoder module "avcodec"
core debug: looking for encoder module matching "any": 20 candidates
core debug: using encoder module "x265"
core debug: removing module "x265"
core debug: Decoder wait done in 450 ms
avcodec debug: available hardware decoder output format 61 (dxva2_vld)
avcodec debug: available software decoder output format 0 (yuv420p)
core debug: looking for hw decoder module matching "any": 1 candidates
core debug: no hw decoder modules matched
avcodec debug: available hardware decoder output format 61 (dxva2_vld)
avcodec debug: available software decoder output format 0 (yuv420p)
core debug: looking for hw decoder module matching "any": 1 candidates
core debug: no hw decoder modules matched
avcodec debug: enabling direct rendering
stream_out_transcode debug: decoder aspect is 1.759336:1
stream_out_transcode debug: source pixel aspect is 0.995851:1
stream_out_transcode debug: scaled pixel aspect is 0.989627:1
stream_out_transcode debug: source 848x480, destination 208x118
stream_out_transcode debug: source fps 48000/2002, destination 24000/1001
stream_out_transcode: output interval 41708 (base 1001)
stream_out_transcode debug: encoder aspect is 650416:368160
core debug: looking for video filter2 module matching "any": 58 candidates
swscale debug: 848x480 (848x482) chroma: I420 -> 208x118 (208x118) chroma: I420 with scaling using Bicubic (good quality)
core debug: using video filter2 module "swscale"
core debug: Filter 'Swscale' (0000000006416af0) appended to chain
stream_out_transcode debug: destination (after video filters) 208x118
core debug: looking for encoder module matching "any": 20 candidates
x265 error: Height (118) must be a multiple of 8
avcodec debug: CPU flags: 0x010011db
avcodec error: cannot find encoder MPEG-H Part2/HEVC (H.265)
*** Your Libav/FFmpeg installation is crippled. ***
*** Please check with your Libav/FFmpeg packager. ***
*** This is NOT a VLC media player issue. ***
core debug: no encoder modules matched
stream_out_transcode error: cannot find video encoder (module:any fourcc:hevc)
core debug: removing module "avcodec"
avcodec debug: ffmpeg codec (H264 - MPEG-4 AVC (part 10)) stopped
core debug: Filter 0000000006416af0 removed from chain
core debug: removing module "swscale"
core error: cannot continue streaming due to errors
core debug: EOF reached
core debug: waiting decoder fifos to empty
corcoer ed edbeubgu:g :f irneimsohveidn gi nmpoudtu
le "packetizer_h264"
core debug: killing decoder fourcc `h264', 0 PES in FIFO
core debug: removing a sout input (sout_input:00000000003bf470)
core debug: removing module "h264"
core debug: removing module "packetizer_h264"
core debug: removing module "record"
core debug: removing module "filesystem"
core debug: Program doesn't contain anymore ES
core debug: dead input
core debug: changing item without a request (current 0/1)
core debug: nothing to play
qt4 debug: IM: Deleting the input
core debug: Destroying the input for 'input.h264'
core debug: exiting
core debug: removing all interfaces
core debug: exiting
core debug: no exit handler
core debug: removing module "qt4"
core debug: deactivating the playlist
core debug: destroying useless sout
core debug: destroying chain... (name=transcode)
core debug: removing module "stream_out_transcode"
core debug: destroying chain done
core debug: destroying chain... (name=file)
core debug: removing module "stream_out_standard"
core debug: removing module "mux_mp4"
mux_mp4 debug: Close
mux_mp4 debug: movie duration 0s
core debug: removing module "access_output_file"
access_output_file debug: file access output closed
core debug: destroying chain done
core debug: removing module "mmdevice"
qt4 debug: requesting exit...
qt4 dqt4 edbeubgu:g :w aQiAtpipn ge xfeocr( )U If itnhirsehaedd.
..
qt4 debug: Video is not needed anymore
qt4 debug: Killing extension dialog provider
qt4 debug: ExtensionsDialogProvider is quitting...
core debug: removing module "lua"
lua debug: Deactivating all loaded extensions
lua debug: All extensions are now deactivated
core debug: removing module "win32"
core debug: removing module "hotkeys"
core debug: removing module "logger"
-- logger module stopped --
-- logger module stopped --
Re: VLC transcoding from anything to HEVC... encoder missing
Posted: 05 May 2014 00:36
by Jean-Baptiste Kempf
x265 error: Height (118) must be a multiple of 8
Set the height manually.
Re: VLC transcoding from anything to HEVC... encoder missing
Posted: 05 May 2014 06:20
by David7578
Ok thanks for the help.
So the error is "generic" unless you watch the logs. Clear them and then see what happens.
After setting height/width manually, the encoder started.
Now I will try different settings and see what happens.
Thanks a lot!
Re: VLC transcoding from anything to HEVC... encoder missing
Posted: 05 May 2014 19:31
by David7578
I wonder if I can speak my trial and errors here...
So, with a transcode command to only encode in hevc and resize the video so that the encoding time is not too long, I get files that can't be played with VLC itself. I'll post a log later. I wonder if I should start a new thread.
Re: VLC transcoding from anything to HEVC... encoder missing
Posted: 08 May 2014 07:57
by David7578
So far, the encoding works, with problems related to the encapsulation.
Avi: Works, image is fine, but no audio is muxed
MP4: it seems it works, but the file is not playable with either VLC or other HEVC compatible players.
MKV: Works, but video is sometimes garbled, like every 3 seconds. Audio is properly muxed.
Re: VLC transcoding from anything to HEVC... encoder missing
Posted: 15 Nov 2014 08:26
by David7578
6 months later, big update:
The computer I used for the transcoding has been replaced by an overkill machine with an i7-4790k enough ram and a SSD.
Thing is, the power reserve is so immense I can transcode 1080p to 720p25FPS HEVC with a 1mbps target in realtime and still only use 80% of the processing power.
Needless to say that at the other end the image is vastly different.
If i try to encode to DVD quality, I'm only at 30% power.
So now my goal is to fine tune the settings to prevent buffering that appears when I overshoot the 1mbps limit for too long.
For the record, I transcode a 5 mbps 1080p50 livestream and restream it in hevc with an upload limit around 1mbps (my ADSL/VDSL line can't give more than that)
Wit the old comp, I couldn't use HEVC, too power hungry. So I had to lower resolution a lot (390 horizontal lines at max) in x264 at 25 FPS to meet the power and bandwidth limits.
Now I can go all the way up to 720p25 in HEVC. And VLC latest x64 nighlty does the job. A little detail, for the mux choose TS, it works great.
I'm back playing with the parameters and see if I can find a set that works best against bandwidth overshoot.
Re: VLC transcoding from anything to HEVC... encoder missing?
Posted: 02 May 2015 05:58
by andrew46
Have you managed to manipulate the crf setting from the vlc commandline? If so could you give a sample commandline?
This is something I have consistently failed to do...