FAQ  •  Register  •  Login

Synology DS214Play - Hardware transcoding test: help needed

<<

spamftw

Serviio newbie

Posts: 1

Joined: Sun Sep 28, 2014 2:32 am

Post Mon Sep 29, 2014 3:53 am

Re: Synology DS214Play - Hardware transcoding test: help nee

Hey Patters, where could I find the sources/directions for this so I could compile it as well?
<<

phrig

Serviio newbie

Posts: 1

Joined: Tue Mar 18, 2014 12:22 am

Post Sun Oct 05, 2014 11:45 pm

Re: Synology DS214Play - Hardware transcoding test: help nee

Quick history for owning a 214Play:

I purchased the 214Play to pass video/audio over to my TV thinking that it would be a fix-all solution, then Synology for legal reasons pulled that possibility out of the deal.

Not that I know much about 'ffmpeg', other than what I find here and there, but I thought this may be worth mentioning:

I took an older version of 'Video Station', (on my HD is VideoStation-evansport-1.1-0300, maybe there's a newer version that still has a working ffmpeg?), stripped out the 'ffmpeg' from \Vidiostation\bin and the contents of \lib\ffmpeg into a single folder:

myffmpeg\bin\ffmpeg
myffmpeg\bin\ffmpeg\
myffmpeg\bin\ffmpeg\libavcodec.so.54
myffmpeg\bin\ffmpeg\libavdevice.so.54
myffmpeg\bin\ffmpeg\libavfilter.so.3
myffmpeg\bin\ffmpeg\libavformat.so.54
myffmpeg\bin\ffmpeg\libavutil.so.51
myffmpeg\bin\ffmpeg\libpostproc.so.52
myffmpeg\bin\ffmpeg\libswresample.so.0
myffmpeg\bin\ffmpeg\libswscale.so.2

On the 214Play: Moving into the 'myffmpeg\bin\' folder and typing './ffmpeg' gives me this:
  Code:
volume1/All/oldffmpeg/bin
DiskStation>./ffmpeg
ffmpeg version 1.0 Copyright (c) 2000-2012 the FFmpeg developers
  built on Apr 19 2013 10:53:22 with gcc 4.6.3 (crosstool-NG 1.17.0)
  configuration: --arch=i686 --target-os=linux --cross-prefix=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- --enable-cross-compile --enable-optimizations --enable-pic --enable-gpl --enable-shared --disable-static --enable-version3 --enable-nonfree --enable-libfaac --enable-encoders --enable-pthreads --disable-bzlib --disable-protocol=rtp --enable-muxer=mp4 --enable-avfilter --disable-muxer=image2 --disable-muxer=image2pipe --disable-swscale-alpha --disable-ffserver --disable-ffplay --disable-network --disable-devices --disable-bzlib --disable-altivec --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-encoder=zmbv --enable-yasm --enable-libmp3lame --enable-libx264 --enable-encoder=libx264 --enable-libh264_smd --enable-smd --disable-filter=hqdn3d --extra-libs='-lgdl -losal -lpal -lsven -lismd_core -lismd_audio -lismd_viddec -lismd_videnc -lismd_vidpproc -lplatform_config -lffmpeg_plugin'
  built with Intel SDK version IntelCE-30.0.12493.331318
    Last message repeated 1 times
  libavutil      51. 73.101 / 51. 73.101
  libavcodec     54. 59.100 / 54. 59.100
  libavformat    54. 29.104 / 54. 29.104
  libavdevice    54.  2.101 / 54.  2.101
  libavfilter     3. 17.100 /  3. 17.100
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...


I then take a sample file with known DTS and try converting (on the 214Play) to AC3 as a trial with:

  Code:
/volume1/All/oldffmpeg/bin
DiskStation>./ffmpeg -i sample_dts.mkv -c:v h264_smd -vsync 2 -preset veryfast -vprofile high -c:a ac3 -b:a 640k sample_dts_ac3.mp4       
ffmpeg version 1.0 Copyright (c) 2000-2012 the FFmpeg developers
  built on Apr 19 2013 10:53:22 with gcc 4.6.3 (crosstool-NG 1.17.0)
  configuration: --arch=i686 --target-os=linux --cross-prefix=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- --enable-cross-compile --enable-optimizations --enable-pic --enable-gpl --enable-shared --disable-static --enable-version3 --enable-nonfree --enable-libfaac --enable-encoders --enable-pthreads --disable-bzlib --disable-protocol=rtp --enable-muxer=mp4 --enable-avfilter --disable-muxer=image2 --disable-muxer=image2pipe --disable-swscale-alpha --disable-ffserver --disable-ffplay --disable-network --disable-devices --disable-bzlib --disable-altivec --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-encoder=zmbv --enable-yasm --enable-libmp3lame --enable-libx264 --enable-encoder=libx264 --enable-libh264_smd --enable-smd --disable-filter=hqdn3d --extra-libs='-lgdl -losal -lpal -lsven -lismd_core -lismd_audio -lismd_viddec -lismd_videnc -lismd_vidpproc -lplatform_config -lffmpeg_plugin'
  built with Intel SDK version IntelCE-30.0.12493.331318
    Last message repeated 1 times
  libavutil      51. 73.101 / 51. 73.101
  libavcodec     54. 59.100 / 54. 59.100
  libavformat    54. 29.104 / 54. 29.104
  libavdevice    54.  2.101 / 54.  2.101
  libavfilter     3. 17.100 /  3. 17.100
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
[h264_smd @ 0x8080740]
******************Using H.264 Hardware video decoder**************
Input #0, matroska,webm, from 'sample_dts.mkv':
  Metadata:
    creation_time   : 2007-11-03 14:26:54
  Duration: 00:01:47.07, start: 0.000000, bitrate: 4064 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p, 1200x720, SAR 1:1 DAR 5:3, 23.98 fps, 23.98 tbr, 1k tbn, 2k tbc (default)
    Metadata:
      title           : A Movie (Hmm)
    Stream #0:1(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), s16, 1536 kb/s (default)
    Metadata:
      title           : DTS 6 Channels 1536 kb/s
    Stream #0:2(eng): Subtitle: ssa (default)
    Stream #0:3(dan): Subtitle: ssa
    Stream #0:4(dut): Subtitle: ssa
    Stream #0:5(fin): Subtitle: ssa
    Stream #0:6(fre): Subtitle: ssa
    Stream #0:7(ger): Subtitle: ssa
    Stream #0:8(ita): Subtitle: ssa
    Stream #0:9(nor): Subtitle: ssa
    Stream #0:10(spa): Subtitle: ssa
    Stream #0:11(swe): Subtitle: ssa
File 'sample_dts_ac3.mp4' already exists. Overwrite ? [y/N] y
using SAR=1/1
[h264_smd @ 0x8148c40] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle Cache64
[h264_smd @ 0x8148c40] profile High, level 3.1
[h264_smd @ 0x8148c40] 264 - core 119 r0+4 470792a - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=23 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[h264_smd @ 0x8080740]
******************Using H.264 Hardware video decoder**************
Output #0, mp4, to 'sample_dts_ac3.mp4':
  Metadata:
    encoder         : Lavf54.29.104
    Stream #0:0(eng): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1200x720 [SAR 1:1 DAR 5:3], q=-1--1, 13978 tbn, 23.98 tbc (default)
    Metadata:
      title           : A sample movie
    Stream #0:1(eng): Audio: ac3 ([165][0][0][0] / 0x00A5), 48000 Hz, 5.1(side), flt, 640 kb/s (default)
    Metadata:
      title           : DTS 6 Channels 1536 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264_smd -> h264_smd)
  Stream #0:1 -> #0:1 (dca -> ac3)
****** Using SMD H/W H.264 Decoder and H/W H.264 Encoder(Pipelined Mode)*******
Press [q] to stop, [?] for help
first_pts 0 pts_time 0 frome pts
frame= 2496 fps=106 q=0.0 Lsize=   46116kB time=00:01:44.06 bitrate=3630.3kbits/s   
video:37916kB audio:8130kB subtitle:0 global headers:0kB muxing overhead 0.152504%


So, would just copying this older version of 'ffmpeg' over, (it seems to be a Dynamic build 'cause it's only ~180k), save on the legal issues from Serviio's POV?

For the record; nowadays I just want to press 'play' :)
<<

toff68

Serviio newbie

Posts: 1

Joined: Mon Oct 06, 2014 10:25 pm

Post Mon Oct 06, 2014 10:54 pm

Re: Synology DS214Play - Hardware transcoding test: help nee

Hi patters,

from your post on 1st Aug:

Let's imagine you had extracted and decrypted a Bluray disc. They're not all encoded in H.264, some use VC-1 video. Your iPad is not going to play VC-1.
Let's imagine you want to burn subtitles into the video stream, because you TV doesn't support SRT subtitles. You need an encoder to do this.
The DS214Play offers the ability to do this without tying up the CPU since it has a hardware video codec that's built for this purpose, only none of the media servers currently support this apart from the Synology one which is very limited. This is why I went ahead and did it, because I'm probably someone with more experience of compiling FFmpeg for embedded systems than most.

Not sure which synology media server can do this, but my DS214play (media server or Video station package) didnt make any difference for me and even i set transcoding, name of movie file and subtitle file are the same i cant see the subtitles.
Synology support reply to me that it will be not possible.

I understand that your latest serviio package for Synology Ds214play can hardcode subtitles into the stream and my panasonic viera 50vt50e tv will finally able to show external srt subtitles with mp4 file?
<<

n0pa

Serviio newbie

Posts: 2

Joined: Sun Mar 08, 2015 9:42 pm

Post Mon Mar 09, 2015 1:02 am

Re: Synology DS214Play - Hardware transcoding test: help nee

I wanted to follow-up to see if there was any chance that this functionality was added to the Synology Package or when it might be. I have a DS214Play in them mail and can't wait to use Serviio.

Also, if it is not going to be added to the Synology package, is there anyway i can do it myself?

Thanks.
<<

Mattym

Serviio newbie

Posts: 2

Joined: Wed Jan 14, 2015 9:11 pm

Post Thu Jul 09, 2015 1:40 pm

Re: Synology DS214Play - Hardware transcoding test: help nee

If you still need access to an Evansport Diskstation, let me know. Would love to see hardware transcoding supported!
<<

andym2009

Serviio newbie

Posts: 5

Joined: Tue Mar 17, 2015 6:48 pm

Post Wed Nov 04, 2015 11:23 pm

Re: Synology DS214Play - Hardware transcoding test: help nee

Hi,

Have you given up on this thread or are you still looking for people to help test your work?

I have a DS214play and a variety of different ways to render the movies.

Andy
<<

patters

User avatar

DLNA master

Posts: 1282

Joined: Sat Oct 09, 2010 3:51 pm

Location: London, UK

Post Mon Nov 09, 2015 12:41 pm

Re: Synology DS214Play - Hardware transcoding test: help nee

I'll write up why this has taken so long...

Limitations, bugs in the Synology code, and compilation issues
I have been partly dependent on some help from Synology Inc. and they were kind enough to answer some of my development queries around compiling their modified build of FFmpeg for hardware encoding. The big issue was that subtitle compositing cannot be done in the codec pipeline so it's not possible to use hw decoding > subtitle burning > hw encoding. As a result you need to do the decode in software if you want to burn subtitles.

Fine, however this means the system is just too underpowered for real-time subtitle burning - which had been one of my big objectives in adding the hardware support. It would have been great to really democratize viewing of media content worldwide with such a relatively low cost solution. I suppose in the long time since I started this thread, many new TVs and renderer devices now support subtitles natively which erodes this use case. However encoding H.264 in software is still computationally expensive so the hardware transcoding function remains very useful for streaming to mobile devices for instance, or for remote viewing, both of which are likely to involve MediaBrowser. More on that...

I raised a bug with Synology that their FFmpeg was segfaulting when attempting to output to a Flash container. This was fixed in a patch they sent me but I had great difficulty in getting that to work since eventually it became clear that their sources were different from mine. I think this was caused because they already had newer ones since DSM 5.1 was in beta. Further requests for help were put on hold while the Synology dev team geared up to launch DSM 5.1. I had to wait quite a long time for the DSM 5.1 (5510) sources to be published. I also became busy with work commitments and progress slowed a lot.

Non-compliant H.264 streams from the hardware encoder
The next problem was that the Flash video streams that were being produced by the encoder seemed to be corrupt. MediaBrowser playback in Safari on my MacBook Air produced green glitchy video. I spent a long time producing meticulous error reports for the Synology developers with encoded media samples but we made no progress despite some lengthy exchanges. I then questioned whether FlowPlayer was responsible but Zip ruled this out in testing using my sample files. The rendered video appeared to drop frames very conspicuously on other web browsers which didn't exhibit the green screen issues that plagued Safari. Eventually I was able to use the tool DGAVCDec to validate the H.264 elementary stream inside the produced flv container and I demonstrated that the Synology forked FFmpeg was building the stream in a non-compliant way (many validation errors, out of order frames etc.). Streams produced by the libx264 software encoder in the same FFmpeg binary passed the checks with no errors. It was conclusive - the Evansport H.264 encoding solution isn't adhering to the standard. At that point Synology had to concede that although they have customized the forked FFmpeg somewhat, essentially it is based upon a reference implementation produced by Intel for the Evansport SDK. As such Synology did not design the core encoder functionality, and cannot justify investigating any further, which is understandable. It then transpired that the green Flash stream playback issue was only confined to Safari running on my MacBook. The streams rendered correctly in Firefox. Zip's test Mac VM was not affected by the Safari issue when playing my test encodes via MediaBrowser, so I have to conclude that it relates to how playback is hardware accelerated in the Intel Core i5 GPU since I don't think Firefox can use that.

Real world performance
It seems that the Evansport encoder's deviation from the H.264 standard is minor enough that most hardware renderers display smooth video nonetheless, but the Mac OS X Safari Intel hardware accelerated video playback driver cannot decode hardware encoded video in a Flash container at all (at least for SandyBridge chips like mine). In other web browsers on Mac OS X and on Windows FlowPlayer drops a lot of frames in this same material resulting in jerky playback, which is just obvious enough to make hardware transcoding for the MediaBrowser pretty unwatchable. Consequently I have left the default flv transcoding codec in place for MediaBrowser. At least the video decode process can be accelerated in hardware, and several decode pipelines are available concurrently. I have tested running 4 hardware AVI mpeg4 decodes to flv concurrently, plus an AVI to H.264 pipeline mode transcode. The more tasks, the lower the overall framerate. I successfully transcoded two AVI movies to flv at the same time with a modest (around 50%) CPU load on my DS214Play. I have tested burning hard subs into a 1920x1080 H.264 video and the DS214Play can only achieve around 20fps - so it can't quite do this on the fly (most bluray rips are 24fps). The resulting file plays perfectly smoothly on hardware (Sony Bluray) but using the software decoder to composite the subtitles mean that to watch a foreign movie this way you would have to start playback, hit pause/stop and return to watch later on. The reality is that it's probably easier to manually mux the srt file into an MKV before adding it to your library - assuming your renderer device supports this. If you have a lot of videos in VC-1 format then the Evansport will achieve real time transcoding.

Regression issues cross compiling a newer FFmpeg for all the target architectures
After all these technical delays I had completed the rewrite of the package for Serviio 1.5.2 in late July 2015 while also very busy with work. One hold up which took an enormous amount of effort was compiling libx264 for ARM systems with NEON vector units. It was failing at the assembly compilation, and there was no relevant information about this error available online, and very few published examples of NEON-specific compilation parameters at all. This is especially odd considering the current extent of iPhone and iPad app development. It transpired that you cannot use the assembler as, you must use gcc. I still don't know how I managed to figure that out. By this point I had rebuilt everything using the sources for DSM 5.2 (5565) in case there were more fixes for the Evansport hardware video codec.

Just prior to releasing I discovered that subtitle support - a major feature - was broken in all of my FFmpeg binaries. It was frustrating because I had already cracked some of the really tough problems such as compiling Synology's fork of FFmpeg with Evansport hardware transcoding with all the Serviio additional libraries, and enabling all the various encoders/decoders which Synology are legally prevented from enabling. There is also reasonable complexity around the FFmpeg wrapper that was needed for hardware transcoding. Only one hardware accelerated ffmpeg process is permitted so it needs to be used only when needed, and avoiding deadlocks with other software attempting to use the hardware codec. The stock application and device profiles needed editing to make transcoding more H.264 centric where possible.

Late last night I finally got the FFmpeg 2.7.1 that I compiled back in July 2015 working with subtitle support - something that has taken me months of sporadic effort to track down. It was a real brick wall of a problem because libfontconfig is such an apparent black box. There is no error logging and there are very few published examples of how to investigate. I lack the development expertise to debug code - I'm just someone who has self-taught himself to cross compile open source software for embedded systems.

After many months of experiments with different library versions, different toolchain versions, and compilation options I finally have it solved. It needed libfreetype to be built without external zlib support (to force it to use its own internal zlib functions). Even though the fonts were not compressed, fontconfig seemed to hang as it tried to load the zlib support before opening font files - presumably because the DSM-included libfreetype was compiled in this same way. My problem is of course that although I have the source code for DSM, I don't know how Synology chose to compile it. There is no record of the compilation parameters. I hope to release a test build of Serviio 1.5.2 later today finally, and then I think Serviio will be the first media server with hardware transcoding support (apart from vendor supplied ones like VideoStation and the ASUS equivalent).

What had been so frustrating is that subtitles worked fine when I had compiled FFmpeg 2.1 for Serviio 1.3. It just goes to show how difficult this has become when there are so many dependent libraries. The smallest difference with even the order they are compiled in can result in a non-working binary. Version changes can mess things up completely (getting gnutls built is a case in point), and often version changes require tweaks to the compilation method which may then break something else. I chose to compile with dynamic library support so that I can make maximum use of libs that are already included in DSM, and to reduce the memory footprint (older NAS units were very RAM limited). This also allows me to substantially reduce my package repository storage and bandwidth costs. Furthermore there are 6 Synology CPU architectures to cross-compile for armhfneon, armv5tel, armv7l, i686, i686evansport, and ppc. As you can see, building FFmpeg is quite a large project in itself. Just look at this dependency chain!

  Code:
DS214Play> ldd /var/packages/Serviio/target/bin/ffmpeg
   linux-gate.so.1 =>  (0xffffe000)
   libavdevice.so.55 => /volume1/@appstore/Serviio/bin/../lib/libavdevice.so.55 (0xb7723000)
   libavfilter.so.3 => /volume1/@appstore/Serviio/bin/../lib/libavfilter.so.3 (0xb7644000)
   libavformat.so.55 => /volume1/@appstore/Serviio/bin/../lib/libavformat.so.55 (0xb74c4000)
   libavcodec.so.55 => /volume1/@appstore/Serviio/bin/../lib/libavcodec.so.55 (0xb6742000)
   libpostproc.so.52 => /volume1/@appstore/Serviio/bin/../lib/libpostproc.so.52 (0xb6712000)
   libswresample.so.0 => /volume1/@appstore/Serviio/bin/../lib/libswresample.so.0 (0xb66fa000)
   libswscale.so.2 => /volume1/@appstore/Serviio/bin/../lib/libswscale.so.2 (0xb6690000)
   libavutil.so.52 => /volume1/@appstore/Serviio/bin/../lib/libavutil.so.52 (0xb664e000)
   libffmpeg_plugin.so => /lib/libffmpeg_plugin.so (0xb6639000)
   libm.so.6 => /lib/libm.so.6 (0xb660f000)
   libjson-c.so.2 => /lib/libjson-c.so.2 (0xb6604000)
   libpthread.so.0 => /lib/libpthread.so.0 (0xb65e9000)
   libc.so.6 => /lib/libc.so.6 (0xb6471000)
   libismd_core.so => /lib/libismd_core.so (0xb6464000)
   libismd_viddec.so => /lib/libismd_viddec.so (0xb645b000)
   librt.so.1 => /lib/librt.so.1 (0xb6452000)
   libass.so.5 => /volume1/@appstore/Serviio/bin/../lib/libass.so.5 (0xb6426000)
   librtmp.so.1 => /volume1/@appstore/Serviio/bin/../lib/librtmp.so.1 (0xb640a000)
   libz.so.1 => /lib/libz.so.1 (0xb63f4000)
   libgnutls.so.28 => /volume1/@appstore/Serviio/bin/../lib/libgnutls.so.28 (0xb62cd000)
   libx264.so.119 => /volume1/@appstore/Serviio/bin/../lib/libx264.so.119 (0xb617a000)
   libspeex.so.1 => /volume1/@appstore/Serviio/bin/../lib/libspeex.so.1 (0xb615a000)
   libmp3lame.so.0 => /lib/libmp3lame.so.0 (0xb60e8000)
   libdl.so.2 => /lib/libdl.so.2 (0xb60e3000)
   libxml2.so.2 => /lib/libxml2.so.2 (0xb5f8c000)
   libismd_demux.so => /lib/libismd_demux.so (0xb5f81000)
   libismd_vidrend.so => /lib/libismd_vidrend.so (0xb5f79000)
   libismd_clock.so => /lib/libismd_clock.so (0xb5f77000)
   libismd_audio.so => /lib/libismd_audio.so (0xb5f68000)
   libismd_videnc.so => /lib/libismd_videnc.so (0xb5f64000)
   libismd_vidpproc.so => /lib/libismd_vidpproc.so (0xb5f5d000)
   libismdmessage.so => /lib/libismdmessage.so (0xb5f5a000)
   libsven.so => /lib/libsven.so (0xb5e1a000)
   libpal.so => /lib/libpal.so (0xb5e18000)
   libosal.so => /lib/libosal.so (0xb5e10000)
   libplatform_config.so => /lib/libplatform_config.so (0xb5e0d000)
   libsystem_utils.so => /lib/libsystem_utils.so (0xb5e0a000)
   libismd_clock_recovery.so => /lib/libismd_clock_recovery.so (0xb5e07000)
   /lib/ld-linux.so.2 (0xb772f000)
   libfribidi.so.0 => /volume1/@appstore/Serviio/bin/../lib/libfribidi.so.0 (0xb5dee000)
   libfontconfig.so.1 => /volume1/@appstore/Serviio/bin/../lib/libfontconfig.so.1 (0xb5dab000)
   libexpat.so.1 => /lib/libexpat.so.1 (0xb5d83000)
   libfreetype.so.6 => /lib/libfreetype.so.6 (0xb5ccf000)
   libhogweed.so.2 => /volume1/@appstore/Serviio/bin/../lib/libhogweed.so.2 (0xb5ca2000)
   libnettle.so.4 => /volume1/@appstore/Serviio/bin/../lib/libnettle.so.4 (0xb5c6a000)
   libgmp.so.10 => /lib/libgmp.so.10 (0xb5bfa000)
   liblzma.so.5 => /lib/liblzma.so.5 (0xb5bd4000)
   libbz2.so.1.0 => /lib/libbz2.so.1.0 (0xb5bc3000)
   libpng16.so.16 => /lib/libpng16.so.16 (0xb5b8b000)
DS214Play>         


TLDR; Multiple technical setbacks with hardware encoding, then building for ARM with NEON, and finally subtitles support. The Synology port is a unified code base, so I didn't want to back-hack in hardware support and break everything later. Many of the changes in 1.4.1.2 -> 1.5.2 were necessary for hardware transcoding. Migrating the build process from FFmpeg 2.1 to FFmpeg 2.7.1 also a big deal. Dependency chain of libraries getting so huge makes this exponentially more difficult each time I refresh FFmpeg. Nearly ready to release 1.5.2 though...
LG OLED55B8PLA | PS4 Pro | Xbox One S | Synology DS214play
Serviio 2.1 package for Synology NAS - with limited hardware transcoding support!
<<

patters

User avatar

DLNA master

Posts: 1282

Joined: Sat Oct 09, 2010 3:51 pm

Location: London, UK

Post Thu Nov 12, 2015 2:47 am

Re: Synology DS214Play - Hardware transcoding test: help nee

Right, now my work is finally published - here's how I compiled FFmpeg:
http://pcloadletter.co.uk/2012/10/12/ff ... -synology/

Use this information wisely - it took a year and a half to figure out :)
LG OLED55B8PLA | PS4 Pro | Xbox One S | Synology DS214play
Serviio 2.1 package for Synology NAS - with limited hardware transcoding support!
<<

zip

User avatar

Serviio developer / Site Admin

Posts: 17212

Joined: Sat Oct 24, 2009 12:24 pm

Location: London, UK

Post Thu Nov 12, 2015 4:22 pm

Re: Synology DS214Play - Hardware transcoding test: help nee

Great stuff mate, you're a superman.
Previous

Return to NAS installation

Who is online

Users browsing this forum: No registered users and 5 guests

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.