x265 HEVC encoder for 32- and 64-bit Pupplets

Requests go here. If you fill a request, give it a new thread in the appropriate category and then link to it in the request thread.
Post Reply
Message
Author
Puppyt
Posts: 907
Joined: Fri 09 May 2008, 23:37
Location: Moorooka, Queensland
Contact:

x265 HEVC encoder for 32- and 64-bit Pupplets

#1 Post by Puppyt »

I am having difficulties playing hevc (hev1) media files, as initially flagged here http://www.murga-linux.com/puppy/viewto ... 249#908249. I'm using the TahrPup64 6.0.5 CE environment and while I could probably make my request there, I think that the wider Puppy community could benefit from a simplified playback solution (see http://www.winxdvd.com/resource/h265-encoder.htm for a bit of background).
So what happened is that I couldn't play an hev1-encoded MP4 file in TahrPup64's built-in VLC 2.1.4 Rincewind. After upgrading via PPM to VLC 2.2.1 Weatherwax still no go. Went to GitHub to install the libde265 plugin vlc-libde265-master, needed to Install the devx to make/compile and found I then also needed the prerequisites:
- libvlccore-dev
- libde265-dev (>= 0.7)
- libebml-dev
- libmatroska-dev
- libdvbpsi-dev
...and have attempted to install libde265 and gstreamer-lib265 to backfill the gaps. I have tripped up somewhere, and I still can't play the hevc files.

I also tried to compile and install the latest mplayer from PPM - and receive an error concerning main.png corruption in the default skin subdirectory that repeats despite numerous re-installs from fresh downloads. The problem lies in the packaging of mplayer-skins_3.1, I think.

I then tried smplayer, but again I need the x265 libraries installed somewhere (??) for successful playback. I'm guessing...

Sorry for the blow-by-blow. Frustrated it's not happening for me. The request boils down to: what is the easiest/best way to play x265 codec files in Puppy? Is there a solution publicly available for download, as I haven't been able to find it. Any advice or submission on this would be most appreciated, cheers.

PS an alternative recipe here https://bitbucket.org/multicoreware/x265/wiki/Home)
Search engines for Puppy
[url]http://puppylinux.us/psearch.html[/url]; [url=https://cse.google.com/cse?cx=015995643981050743583%3Aabvzbibgzxo&q=#gsc.tab=0]Google Custom Search[/url]; [url]http://wellminded.net63.net/[/url] others TBA...

User avatar
OscarTalks
Posts: 2196
Joined: Mon 06 Feb 2012, 00:58
Location: London, England

#2 Post by OscarTalks »

My VLC 2.1.6 which I compiled in Wheezy has HEVC playback support which works fine so long as your CPU is powerul enough (it tends to need quite a lot of processing power for this format). I did spend a lot of time adding libraries and re-compiling including libde265 and the VLC plugin and it worked. Not sure if you can just compile the plugin on its own, I re-compiled the whole thing after adding the libs.

Also my mplayer (with GUI) builds are recent source code checkouts and these include a recent static ffmpeg so they will also play HEVC although you really need to add the "-lavdopts threads=2" argument to the exec line in the .desktop file to use 2 cores otherwise playback is not so good. If you use smplayer as a front end you can set this via the preferences. I'm afraid I haven't compiled anything in any 64bit Puppies though.
http://smokey01.com/OscarTalks
Oscar in England
Image

Puppyt
Posts: 907
Joined: Fri 09 May 2008, 23:37
Location: Moorooka, Queensland
Contact:

#3 Post by Puppyt »

Thanks OscarTalks :) In the interim I was able to follow the multicoreware readme's up to a point:

Code: Select all

root# make
-- cmake version 2.8.12.2
-- Detected x86_64 target processor
-- Could NOT find NUMA (missing:  NUMA_ROOT_DIR NUMA_INCLUDE_DIR NUM                              A_LIBRARY) 
-- Found Yasm 1.2.0 to build assembly primitives
-- x265 version 1.9
-- Configuring done
-- Generating done
-- Build files have been written to: /x265_1.9/build/linux
Scanning dependencies of target common
[  1%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/pix                              el-a.asm.o
[  2%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/const-a.asm.o
[  3%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/cpu-a.asm.o
[  5%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/ssd-a.asm.o
[  6%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/mc-a.asm.o
[  7%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/mc-a2.asm.o
[  9%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/pixel-util8.asm.o
[ 10%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/blockcopy8.asm.o
[ 11%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/pixeladd8.asm.o
[ 12%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/dct8.asm.o
[ 14%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/sad-a.asm.o
[ 15%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/intrapred8.asm.o
[ 16%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/intrapred8_allangs.asm.o
[ 18%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/ipfilter8.asm.o
[ 19%] Building ASM_YASM object common/CMakeFiles/common.dir/x86/loopfilter.asm.o
[ 20%] Building CXX object common/CMakeFiles/common.dir/x86/asm-primitives.cpp.o
[ 22%] Building CXX object common/CMakeFiles/common.dir/vec/vec-primitives.cpp.o
[ 23%] Building CXX object common/CMakeFiles/common.dir/vec/dct-sse3.cpp.o
[ 24%] Building CXX object common/CMakeFiles/common.dir/vec/dct-ssse3.cpp.o
[ 25%] Building CXX object common/CMakeFiles/common.dir/vec/dct-sse41.cpp.o
[ 27%] Building CXX object common/CMakeFiles/common.dir/primitives.cpp.o
[ 28%] Building CXX object common/CMakeFiles/common.dir/pixel.cpp.o
[ 29%] Building CXX object common/CMakeFiles/common.dir/dct.cpp.o
[ 31%] Building CXX object common/CMakeFiles/common.dir/ipfilter.cpp.o
[ 32%] Building CXX object common/CMakeFiles/common.dir/intrapred.cpp.o
[ 33%] Building CXX object common/CMakeFiles/common.dir/loopfilter.cpp.o
[ 35%] Building CXX object common/CMakeFiles/common.dir/constants.cpp.o
[ 36%] Building CXX object common/CMakeFiles/common.dir/cpu.cpp.o
[ 37%] Building CXX object common/CMakeFiles/common.dir/version.cpp.o
[ 38%] Building CXX object common/CMakeFiles/common.dir/threading.cpp.o
[ 40%] Building CXX object common/CMakeFiles/common.dir/threadpool.cpp.o
[ 41%] Building CXX object common/CMakeFiles/common.dir/wavefront.cpp.o
[ 42%] Building CXX object common/CMakeFiles/common.dir/md5.cpp.o
[ 44%] Building CXX object common/CMakeFiles/common.dir/bitstream.cpp.o
[ 45%] Building CXX object common/CMakeFiles/common.dir/yuv.cpp.o
[ 46%] Building CXX object common/CMakeFiles/common.dir/shortyuv.cpp.o
[ 48%] Building CXX object common/CMakeFiles/common.dir/picyuv.cpp.o
[ 49%] Building CXX object common/CMakeFiles/common.dir/common.cpp.o
[ 50%] Building CXX object common/CMakeFiles/common.dir/param.cpp.o
[ 51%] Building CXX object common/CMakeFiles/common.dir/frame.cpp.o
[ 53%] Building CXX object common/CMakeFiles/common.dir/framedata.cpp.o
[ 54%] Building CXX object common/CMakeFiles/common.dir/cudata.cpp.o
[ 55%] Building CXX object common/CMakeFiles/common.dir/slice.cpp.o
[ 57%] Building CXX object common/CMakeFiles/common.dir/lowres.cpp.o
[ 58%] Building CXX object common/CMakeFiles/common.dir/piclist.cpp.o
[ 59%] Building CXX object common/CMakeFiles/common.dir/predict.cpp.o
[ 61%] Building CXX object common/CMakeFiles/common.dir/scalinglist.cpp.o
[ 62%] Building CXX object common/CMakeFiles/common.dir/quant.cpp.o
[ 63%] Building CXX object common/CMakeFiles/common.dir/deblock.cpp.o
[ 63%] Built target common
Scanning dependencies of target encoder
[ 64%] Building CXX object encoder/CMakeFiles/encoder.dir/analysis.cpp.o
[ 66%] Building CXX object encoder/CMakeFiles/encoder.dir/search.cpp.o
[ 67%] Building CXX object encoder/CMakeFiles/encoder.dir/bitcost.cpp.o
[ 68%] Building CXX object encoder/CMakeFiles/encoder.dir/motion.cpp.o
[ 70%] Building CXX object encoder/CMakeFiles/encoder.dir/slicetype.cpp.o
[ 71%] Building CXX object encoder/CMakeFiles/encoder.dir/frameencoder.cpp.o
[ 72%] Building CXX object encoder/CMakeFiles/encoder.dir/framefilter.cpp.o
[ 74%] Building CXX object encoder/CMakeFiles/encoder.dir/level.cpp.o
[ 75%] Building CXX object encoder/CMakeFiles/encoder.dir/nal.cpp.o
[ 76%] Building CXX object encoder/CMakeFiles/encoder.dir/sei.cpp.o
[ 77%] Building CXX object encoder/CMakeFiles/encoder.dir/sao.cpp.o
[ 79%] Building CXX object encoder/CMakeFiles/encoder.dir/entropy.cpp.o
[ 80%] Building CXX object encoder/CMakeFiles/encoder.dir/dpb.cpp.o
[ 81%] Building CXX object encoder/CMakeFiles/encoder.dir/ratecontrol.cpp.o
[ 83%] Building CXX object encoder/CMakeFiles/encoder.dir/reference.cpp.o
[ 84%] Building CXX object encoder/CMakeFiles/encoder.dir/encoder.cpp.o
[ 85%] Building CXX object encoder/CMakeFiles/encoder.dir/api.cpp.o
[ 87%] Building CXX object encoder/CMakeFiles/encoder.dir/weightPrediction.cpp.o
[ 87%] Built target encoder
Scanning dependencies of target x265-shared
Linking CXX shared library libx265.so
[ 87%] Built target x265-shared
Scanning dependencies of target cli
[ 88%] Building CXX object CMakeFiles/cli.dir/input/input.cpp.o
[ 89%] Building CXX object CMakeFiles/cli.dir/input/yuv.cpp.o
[ 90%] Building CXX object CMakeFiles/cli.dir/input/y4m.cpp.o
[ 92%] Building CXX object CMakeFiles/cli.dir/output/output.cpp.o
[ 93%] Building CXX object CMakeFiles/cli.dir/output/reconplay.cpp.o
[ 94%] Building CXX object CMakeFiles/cli.dir/output/yuv.cpp.o
[ 96%] Building CXX object CMakeFiles/cli.dir/output/y4m.cpp.o
[ 97%] Building CXX object CMakeFiles/cli.dir/output/raw.cpp.o
[ 98%] Building CXX object CMakeFiles/cli.dir/x265.cpp.o
[100%] Building CXX object CMakeFiles/cli.dir/x265-extras.cpp.o
Linking CXX executable x265
[100%] Built target cli
Scanning dependencies of target x265-static
Linking CXX static library libx265.a
[100%] Built target x265-static
root# 
...having downloaded keyboard-k's pet from here http://murga-linux.com/puppy/viewtopic. ... 696#848696 - and also having installed the 32-bit compatibility sfs for TahrPup64. But when I got to

Code: Select all

 Now build the encoder and run x265 -V: 
I was able I think to build the encoder, but "x265 -V" just returns "command x265 was not found". Have moved the extracted/compiled file structures from / to /usr, but still no luck in VLC seeing the plugin. Really I don't know *where* to install the files to - if it mattered. It would play the audio. After installing your mplayer - thank you very much - I was still not able to get vision, but fine for audio. Smplayer 0.8.6 *does* actually run both audio and video now.

I'm a bit stuck as "Remove built-in packages" drops out to nothing in TahrPup64, so I can't overwrite the pre-existing VLC 2.1.6 for your version for testing, even after removing tne VLC2.2.1 upgrade. Upshot is I don't know what I did to maybe fix the issue, and what has been absolutely useless :) You can see I'm still totally in the dark.
Search engines for Puppy
[url]http://puppylinux.us/psearch.html[/url]; [url=https://cse.google.com/cse?cx=015995643981050743583%3Aabvzbibgzxo&q=#gsc.tab=0]Google Custom Search[/url]; [url]http://wellminded.net63.net/[/url] others TBA...

User avatar
OscarTalks
Posts: 2196
Joined: Mon 06 Feb 2012, 00:58
Location: London, England

#4 Post by OscarTalks »

Well my VLC was compiled in Wheezy so I would not expect it it work fully (if at all) in other Puppies. The libraries in Precise are similar to Wheezy so most common codecs and functions do appear to work in that, but I would never guarantee that everyting will work.

It seems that there are 2 alternative implementations of HEVC, one is libx265 and the other is libde265. The VLC 2.1.6 does not appear to support libx265 and the plugin requires libde265. I think VLC 2.2.* has introduced support for libx265 but it may not be via the same libde265 plugin. I was unable to get the main VLC 2.2.* application to compile in Wheezy so I just stuck with my 2.1.6 because it worked fine.

If your objective is to find a player for HEVC then I would say that the easiest way is to compile the latest mplayer (and latest smplayer if you like) in your Puppy. I found this easier than compiling VLC.
http://murga-linux.com/puppy/viewtopic. ... &start=764
In fact if you just compile the latest ffmpeg you can even play HEVC videos by simply opening them with ffplay and using the keyboard controls.
Last edited by OscarTalks on Sun 19 Jun 2016, 15:30, edited 1 time in total.
Oscar in England
Image

User avatar
ally
Posts: 1957
Joined: Sat 19 May 2012, 19:29
Location: lincoln, uk
Contact:

#5 Post by ally »

I had a similar issue recently, solved by playing the files on kodi which can handle the format

I'm running a quad core i5 which got the machine pretty toasty, need more power!

:)

Pelo

VLC 2.1.4 rincewind is said to work well with Tharpup

#6 Post by Pelo »

Merci oscar talks.. as soon as we use tahrpup, life becames much more difficult. On the forum VLC 2.1.4 rincewind is said to work well with Tharpup. Where is it ?
2.1.6 Weezy replaces 2.1.4 in oscar talks stores and misses H264 on Unicorn 6.0.. We are searching for Unicorn in fact. Not me, because i decided to come back to Puppy Linux Precise versions.

Post Reply