# Building the Plex New Transcoder

**URL:** <https://forums.plex.tv/t/building-the-plex-new-transcoder/63441>\
**Category:** Dev/API Corner\
**Tags:** other-dev\
**Created:** [April 12, 2014, 6:22pm UTC](https://forums.plex.tv/t/building-the-plex-new-transcoder/63441 "2014-04-12T18:22:42Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![gbooker02](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/gbooker02/32/9726_2.png) [@gbooker02](https://forums.plex.tv/u/gbooker02)\
**Post date:** [April 12, 2014, 6:22pm UTC](https://forums.plex.tv/t/building-the-plex-new-transcoder/63441/1 "2014-04-12T18:22:42Z")

</div>

I tried to build the Plex New Transcoder using the source provided at http://files.plexapp.com/elan/ffmpeg/PlexNewTranscoder.tar.bz2(don't grab this; it's really old) (mentioned in the LICENSE file). &nbsp;This does not build because the archive appears to be incomplete. &nbsp;Notably, the file plex.c contains the following:

#include "plexConfig.h"

#include "plexVersion.h"

&nbsp;

Neither of these files are present. &nbsp;In addition, I've had to modify a location looking for header files under the wrong name. &nbsp;I'd like to build this from source so that I could apply the 2 patches I've created to correct errors in the transcoder. &nbsp;At least then I can use them myself and confirm their fixes while I wait for them to be rolled into the official release.

&nbsp;

So I ask, has anyone built this transcoder from source? &nbsp;What is the configure line used (if it is different than the documentation for FFmpeg)? &nbsp;Are there any particular packages that should be installed prior to configure? &nbsp;Specifically, I'm interesting in building it for Ubuntu 12.04.

---

<div class="post-metadata">

**Author:** ![gunah](https://avatars.discourse-cdn.com/v4/letter/g/7ba0ec/32.png) [@gunah](https://forums.plex.tv/u/gunah)\
**Post date:** [August 8, 2015, 3:30pm UTC](https://forums.plex.tv/t/building-the-plex-new-transcoder/63441/2 "2015-08-08T15:30:05Z")

</div>

hey,

i have excatly the same issue, because plex does not use hardware decoder very well, like CrystalHD and libvdpau, that why my cpu load is very high, on TVHeadend every thing works fine, also on mediatomb, but plex, grrrrr

---

<div class="post-metadata">

**Author:** ![bogorodskiy\_gmail.com](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/bogorodskiy_gmail.com/32/223187_2.png) [@bogorodskiy\_gmail.com](https://forums.plex.tv/u/bogorodskiy_gmail.com)\
**Post date:** [October 19, 2017, 5:36am UTC](https://forums.plex.tv/t/building-the-plex-new-transcoder/63441/3 "2017-10-19T05:36:26Z")

</div>

Any updates on this?

The source tarball downloaded from the link in OP still does not include a couple of files like plexConfig.h, plexVersion.h, version.sh etc.

Creating stub versions of these files helps to move further, but it still fails to build:

```auto
libavfilter/libavfilter.a(vf_inlineass.o): In function `vf_inlineass_set_storage_size': 
/home/novel/code/transcode/plex-new-transcoder/libavfilter/vf_inlineass.c:583: undefined reference to `ass_set_storage_size'                                                    
libavfilter/libavfilter.a(vf_inlineass.o): In function `vf_inlineass_add_attachment':   
/home/novel/code/transcode/plex-new-transcoder/libavfilter/vf_inlineass.c:606: undefined reference to `ass_add_font'                                                            
libavfilter/libavfilter.a(vf_inlineass.o): In function `vf_inlineass_set_fonts':        
/home/novel/code/transcode/plex-new-transcoder/libavfilter/vf_inlineass.c:613: undefined reference to `ass_set_fonts' 

```

any many other errors because of the missing `ass_*` functions.

To move forward, I’ve added `-lass` to `EXTRALIBS` defined in `config.mak` and that helped. There were some other minor problems on the way, like some undefined calls to PMS\_log which I commented out and also a missing `libavutil/ffversion.h` file which I also created and wrote down some random `FFMPEG_VERSION` there.

In the end, I did `make install` and got the following files installed to `/usr/local/bin/`:

```auto
-rwxr-xr-x 1 root wheel 15674144 Oct 19 09:16 ffmpeg
-rwxr-xr-x 1 root wheel 15592768 Oct 19 09:16 ffplay
-rwxr-xr-x 1 root wheel 15616160 Oct 19 09:16 ffprobe
-rwxr-xr-x 1 root wheel 14736928 Oct 19 09:16 ffserver

```

I copied over `/usr/local/bin/ffmpeg` to `/usr/local/share/plexmediaserver/Plex\ Transcoder`. Unfortunately, after that playback got completely broken, it just won’t play anything at all, showing the ‘loading’ icon. Which is no surprising considering count of hacks I had to apply.

Is there any guide how to obtain these missing files and build/install things properly?

---

<div class="post-metadata">

**Author:** ![vlang](https://avatars.discourse-cdn.com/v4/letter/v/57b2e6/32.png) [@vlang](https://forums.plex.tv/u/vlang)\
**Post date:** [October 19, 2017, 3:39pm UTC](https://forums.plex.tv/t/building-the-plex-new-transcoder/63441/4 "2017-10-19T15:39:08Z")

</div>

It should build with `--enable-libass`. Our sources should build like normal FFmpeg, but I guess sometimes some build configurations we don’t need break.

> and also a missing libavutil/ffversion.h file which I also created and wrote down some random FFMPEG\_VERSION there.

No, that shouldn’t be necessary. This sounds very wrong. You probably didn’t finish running configure or so.

---

<div class="post-metadata">

**Author:** ![vlang](https://avatars.discourse-cdn.com/v4/letter/v/57b2e6/32.png) [@vlang](https://forums.plex.tv/u/vlang)\
**Post date:** [October 19, 2017, 3:48pm UTC](https://forums.plex.tv/t/building-the-plex-new-transcoder/63441/5 "2017-10-19T15:48:57Z")

</div>

The link in the first post is actually quite outdated. My suggestion might still help, but you should use the newer sources here: [http://files.plexapp.com/sources/ffmpeg-2017-08.txz](http://files.plexapp.com/sources/ffmpeg-2017-08.txz)

(I tried out building with only `./configure && make -j4` and it succeeded. That wasn’t exactly the code in the newer link either, though.)

---

<div class="post-metadata">

**Author:** ![bogorodskiy\_gmail.com](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/bogorodskiy_gmail.com/32/223187_2.png) [@bogorodskiy\_gmail.com](https://forums.plex.tv/u/bogorodskiy_gmail.com)\
**Post date:** [October 21, 2017, 7:39am UTC](https://forums.plex.tv/t/building-the-plex-new-transcoder/63441/6 "2017-10-21T07:39:28Z")

</div>

> @vlang said:  
> The link in the first post is actually quite outdated. My suggestion might still help, but you should use the newer sources here: [http://files.plexapp.com/sources/ffmpeg-2017-08.txz](http://files.plexapp.com/sources/ffmpeg-2017-08.txz)
> 
> (I tried out building with only `./configure && make -j4` and it succeeded. That wasn’t exactly the code in the newer link either, though.)

Thanks, with this source tarball it builds like a charm. For the previous tarball I did run `configure` and it finished, probably it needs some extra configuration, but anyway it doesn’t matter now when there’s a newer tarball available.

By the way, is there any page with a link to the current actual source snapshot of Plex Transcoder? Before I asked, I’ve googled for that and only found the link in the first post of this topic.

PS The reason I’m trying to figure this out is because I want to fix a segfault I’m having on FreeBSD. I’ve posted some analysis of these crashes and a proposed fix here: [https://forums.plex.tv/discussion/comment/1541567#Comment\_1541567](https://forums.plex.tv/discussion/comment/1541567#Comment_1541567). Appreciate if somebody from the Plex team could take a look.

Thanks a lot for your help!

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/plex/original/3X/2/a/2acb9765406f63293d357b4ec509ec39aa28f2ad.png) [@system](https://forums.plex.tv/u/system)\
**Post date:** [December 21, 2019, 1:50am UTC](https://forums.plex.tv/t/building-the-plex-new-transcoder/63441/7 "2019-12-21T01:50:05Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
