Jump to content

GPU Transcoding (Intel QuickSync and nVidia NVENC)


witteschnitte

Recommended Posts

nickglott

Has anyone been successful in running either quicksync or VAAPI inside of a docker?

 

My setup is a NAS/HTPC all in one.

 

I was running raid5 on windows with quicksync and while my cpu load wasn't nearly as high I couldn't deal with slow write performance with with raid5. When writing to the disks video would stutter when playing on multiple devices at the same time due to my HDD's being pounded.

 

I have since switched to unRAID with a Win10 VM running 1core/2threads and 4gb a ram in the backend to power my HTPC. While in my testing I am able to do 5-6 transcoding streams while still having a 4k movie play on my VM with a large file transfer without issue my CPU would sit at about 98-99%. Some hardware acceleration would be nice cut that down some. As I have read it seems possible but I have not used linux in a long long time and was wondering if someone can chime in as how I could accomplish that.

 

i7 6700k@4.7Ghz (water cooled)

32gb ram

evga ti 750 sc

5x 2TB (soon to be upgraded to 5x 8TB)

1TB SSD Cache/OS

Link to comment
Share on other sites

Has anyone been successful in running either quicksync or VAAPI inside of a docker?

 

My setup is a NAS/HTPC all in one.

 

I was running raid5 on windows with quicksync and while my cpu load wasn't nearly as high I couldn't deal with slow write performance with with raid5. When writing to the disks video would stutter when playing on multiple devices at the same time due to my HDD's being pounded.

 

I have since switched to unRAID with a Win10 VM running 1core/2threads and 4gb a ram in the backend to power my HTPC. While in my testing I am able to do 5-6 transcoding streams while still having a 4k movie play on my VM with a large file transfer without issue my CPU would sit at about 98-99%. Some hardware acceleration would be nice cut that down some. As I have read it seems possible but I have not used linux in a long long time and was wondering if someone can chime in as how I could accomplish that.

 

i7 6700k@4.7Ghz (water cooled)

32gb ram

evga ti 750 sc

5x 2TB (soon to be upgraded to 5x 8TB)

1TB SSD Cache/OS

 

hey there,

 

any news on this?

I also trying to use emby on a unraid system in a docker container and want to use Intel Quicksync.

How can i get it working?

Edited by chvb
Link to comment
Share on other sites

robertp221

I'm using Version 3.1.181.0 beta and now hardware transcoding with NVENC is working but only up to 720P. Did something change that is making it work?

Link to comment
Share on other sites

I can confirm that NVENC works or me with all 1080 contents with a good but small utilization of my GPU (max. 19~20%). for 2160 contents, they're transcoded successfully at 720p@2Mbps not above that; however 1080 contents are transcoded at 1080@4Mbps with no issues.

 

for 4096x2160 contents; the error logged is:

 

Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

 

regards,

DaN

 

Server version: 3.1.6061.2136

ffmpeg: Zeranoe build 20160929

Nvida GTX 750 Ti

Edited by DaN
Link to comment
Share on other sites

robertp221

Not that I can think of but of course it's possible.

The other weird thing is that if i disable hardware transcoding I am able to transcode to 1080p using the CPU.

Link to comment
Share on other sites

Waldonnis

I've attached here 2 logs for a 4K sample transcoding:

 

the success log shows the entries logged by ffmpg when converting 4K to 720 https://dl.dropboxusercontent.com/u/103260475/4k_success.txt

 

the failed log shows the entries when converting 4k to 1080 https://dl.dropboxusercontent.com/u/103260475/4k_failed.txt

 

regards,

DaN

 

In the failed log, there's no downscaling being done at all by ffmpeg according to the command line, so it's trying to transcode 4k h.264 to 4k h.264, rather than 4k h.264 to 1080p h.264.  I'm not sure if some of the cards will even Some cards don't support 4k h.264 encoding, so that may be what the error message is about.  If it's supposed to be downscaling, then the command line needs to be tweaked to include an appropriate filter (the -vf switch in the 720p log), which may actually cause it to work.

 

Side note: There are many limitations to using NV's hardware encoder (or Intel's, although QuickSync is a bit more mature and generally better than NVENC).  It was designed to basically record/stream gaming sessions on the PC, so it doesn't support many pixel formats, frame rates, bitrates, bit depths, and so forth.  Admittedly, this has gotten better in the latest generation of cards, but you still may run across media that it just doesn't work with.  Because hardware encoders are...well, hardware, they're only capable of doing what they're designed to do, and most will never support the entire variety of media files/codecs/bitrates/etc that ffmpeg's software encoders do.

 

Update: Looks like GM20x and later support 2160p60 h.264 encoding, as well as HEVC (although 10bit colour isn't supported by anything except Pascal cards,and GM20x's HEVC implementation doesn't support B-frames).  If your card is an pre-second-gen Maxwell (GM10x), then that would explain why it failed.  I'll try a similar operation on my 970 with one of the 4k Jellyfish test files to see if there might be an ffmpeg issue (or if they're just being conservative).

 

Second update: With 4k, the level being forced to 4.1 is going to cause any 4k h.264 encode to fail.  Can't believe I missed seeing that before :P   Level 5.1 or above should work (and does in my tests on a GTX 970/GM204).

Edited by Waldonnis
  • Like 2
Link to comment
Share on other sites

robertp221

Well that doesn't sound weird at all :)

I did some more poking around and upgraded to the latest beta, but still am seeing the same thing. However if i browse to my movie collection and try playing back one of them it gives me the ability to play back in 1080p even with NVENC. I've included a log of playback. Im not sure if that can be used to determine what is happening.

 

http://pastebin.com/KGnn1GDi

Link to comment
Share on other sites

I'm not really sure what problem you're trying to describe here. You mention movie collection but that log looks like live tv. there's no artificial limit in the server that's being applied when nvenc is used.

Link to comment
Share on other sites

robertp221

I'm not really sure what problem you're trying to describe here. You mention movie collection but that log looks like live tv. there's no artificial limit in the server that's being applied when nvenc is used.

Sorry let me be clearer.

 

When i try to watch live tv(hd home run prime on comcast) with NVENC enabled i can only select up to 720p 10Mbps and it has no problem playing it back. Earlier around page 39/40 of this topic i post about how it was only playing 7 seconds and then would stop playback. If i disable hardware transcoding then it will let me select 1080p 60Mbps using the CPU. 

 

Now if i have NVENC enabled and i try watching a 1080p movie from my movie collection i can select 1080p 60Mbps, but again if i go back to live HD tv then it is limited at 720p 10Mbps(no matter what channel i choose). However now that i've restarted my hd homerun prime it seems i can't play anything back. I wonder if the issue is with hd homerun prime the entire time.

Link to comment
Share on other sites

Second update: With 4k, the level being forced to 4.1 is going to cause any 4k h.264 encode to fail.  Can't believe I missed seeing that before :P   Level 5.1 or above should work (and does in my tests on a GTX 970/GM204).

 

So this the reason why it can transcode to higher resolutions? how about your case with GTX 970, what's the max bit rate it reaches? can you share a log?

 

regards,

DaN

Link to comment
Share on other sites

Waldonnis

So this the reason why it can transcode to higher resolutions? how about your case with GTX 970, what's the max bit rate it reaches? can you share a log?

 

regards,

DaN

 

My source material is only a short clip, but high bitrate (140Mb/s Jellyfish 29.970 fps sample), and the highest bitrate output I achieved in limited testing was around 82Mb/s.  I could probably massage the command a bit to do better or even just try a lossless transcode, but the difference isn't a big deal from a transcoding->streaming perspective for most viewers.

 

Honestly, I've never liked the quality output by NVidia's implementation (nor Intel's, but QuickSync generally does produce superiour quality output compared to NVENC) and some of the bitrate reduction is likely because of the resulting quality reduction.  I have no doubt that I could improve on the command line for this particular file for both quality of output and reducing the bitrate a bit, though I'm not sure how well it would transfer to other media without more samples to play with.  I tweaked a few parameters (adjusting the level from 4.1 to 5.1, altering the fixed bitrate to match the source material for testing purposes: -b:v 140m  ..and so forth), but otherwise, it's the same as what I saw in your log.  I also tried CQP mode and a few other things for fun and managed to lower the bitrate a bit without a noticeable degradation in quality compared to the fixed bitrate test.

 

There are no logs to share, though, as I'm running ffmpeg directly rather than Emby running it.  I use ffmpeg and x264 a lot, so these types of tests are just faster for me to do manually.  Plus, all of my media is purposely encoded to avoid transcoding (I'm picky about the encoding settings anyway), so establishing a test library for a one-off test like this isn't worth the effort on my end.  Not to mention that I have no 4k televisions, personal 4k media, or media playback devices that support those resolutions - just a 4k computer monitor...

 

The levels for h.264 are really critical in this case, though.  4k is just too big for the restrictions imposed on the encoder by setting the level to 4.1 (see here for the level descriptions, requirements, and bitrates; these are important both for setting certain things in the encoder as well as knowing if a playback device's hardware is even capable of decoding the result).  I shy away from 4k h.264 because device support for playback of levels above 4.2 is still a bit spotty (most manufacturers would rather put their 4k efforts/licensing/silicon into HEVC decoding at this point, and HEVC is a whole other ball of yarn encoder-settings-wise).

 

Edit: Oh, one other thing - I did a downscaling-to-1080p test as well, again adjusting the bitrate and such to fit within the general boundaries of level 4.1 and it encoded without issue, so it looks like the failure from your log was because of the 4k->4k transcoding at a level that couldn't have worked for that resolution.  If a 1080p downscaling of 4k content is what should've happened given the client/device limitations, then Emby created an incorrect option string for ffmpeg.  If, however, it tried to transcode based purely on bitrate thresholds rather than a supported resolution, then I can see how it could decide to just transcode to reduce the bitrate while maintaining the 4k dimensions.

Edited by Waldonnis
Link to comment
Share on other sites

Edit: Oh, one other thing - I did a downscaling-to-1080p test as well, again adjusting the bitrate and such to fit within the general boundaries of level 4.1 and it encoded without issue, so it looks like the failure from your log was because of the 4k->4k transcoding at a level that couldn't have worked for that resolution.  If a 1080p downscaling of 4k content is what should've happened given the client/device limitations, then Emby created an incorrect option string for ffmpeg.  If, however, it tried to transcode based purely on bitrate thresholds rather than a supported resolution, then I can see how it could decide to just transcode to reduce the bitrate while maintaining the 4k dimensions.

 

thanks @Waldonnis for detailed information

 

@@Luke, is there a way to control the that incorrect string passed to ffmpeg, in order to downscale the 4K>1080 . by the way there's no problem at all, as mentioned before, with 1080 content, as they're don't need a downscaling.

 

Update: when tested the playback from the webclient (previous tests were from ios and android clients); I choose to transcode another 4K sample as 1080@4Mbps; and it worked, it even forces level 5.1; so it has nothing to do with the video card as it was assumed. log is here: https://dl.dropboxusercontent.com/u/103260475/4K_Success_5.1.txt

 

 

regards,

DaN

Edited by DaN
Link to comment
Share on other sites

Waldonnis

Update: when tested the playback from the webclient (previous tests were from ios and android clients); I choose to transcode another 4K sample as 1080@4Mbps; and it worked, it even forces level 5.1; so it has nothing to do with the video card as it was assumed. log is here: https://dl.dropboxusercontent.com/u/103260475/4K_Success_5.1.txt

 

It still looks like it wasn't downscaling the video stream, so it must be using the bitrate to determine which level and options to use with ffmpeg in this case.  I'm curious to see if it would try to resize/downscale if the bitrate was set much lower (maybe to 1Mb/s) and if it causes the transcode to fail again due to it trying to target a lower level without reducing the frame size.  Granted, 4k h.264 is somewhat of a rarity these days (at least in mainstream use), so this may be more of a corner case that wasn't considered before, both in the server and client(s) code.  Not sure if the same type of thing would crop up with 4k HEVC transcoding, though.

 

Perhaps it just assumed the browser can downscale on its own, since I think they all can (or that it has no way to find out when constructing the query to the server), so it doesn't bother resizing.  The Android and iOS clients, though, should be able to determine supported resolutions on their respective devices and request a different size (if needed; it's possible they can handle downscaling client-side as well).  Luke and ebr would know best, though, since I haven't done more than a cursory look at the Android client code, and that was a long while ago.

  • Like 1
Link to comment
Share on other sites

It still looks like it wasn't downscaling the video stream, so it must be using the bitrate to determine which level and options to use with ffmpeg in this case.  I'm curious to see if it would try to resize/downscale if the bitrate was set much lower (maybe to 1Mb/s) and if it causes the transcode to fail again due to it trying to target a lower level without reducing the frame size.  Granted, 4k h.264 is somewhat of a rarity these days (at least in mainstream use), so this may be more of a corner case that wasn't considered before, both in the server and client(s) code.  Not sure if the same type of thing would crop up with 4k HEVC transcoding, though.

 

Perhaps it just assumed the browser can downscale on its own, since I think they all can (or that it has no way to find out when constructing the query to the server), so it doesn't bother resizing.  The Android and iOS clients, though, should be able to determine supported resolutions on their respective devices and request a different size (if needed; it's possible they can handle downscaling client-side as well).  Luke and ebr would know best, though, since I haven't done more than a cursory look at the Android client code, and that was a long while ago.

 

well, I agree on that assumption, 4K test went successful when choosing 720 resolution for playback setting in both iOS and Android clients; and obviously this forces ffmpeg to downscale the resolution, which is not the case when choosing 1080 resolution, as the ffmpeg string shows no down-scaling and just encode the clip @ 4K resolution which seems to be a problem for the mobile client to playback.

 

Maybe at the time of designing these clients, the thinking was 1080 is the highest popular resolution, and thus, ffmpeg string is passed with the original resolution as-is without any down-scaling :P

 

I hope this to be considered in future updates.

 

regards,

DaN 

Edited by DaN
Link to comment
Share on other sites

Andy777

hey there,

 

any news on this?

I also trying to use emby on a unraid system in a docker container and want to use Intel Quicksync.

How can i get it working?

You need to understand that you want to access a very special piece of _hardware_ directly, and any layers of hardware abstraction will make things that are already difficult, more difficult or even impossible.

 

So using the Non-Vaapi way:

1. You need to have Intel Media Server Studio supported CPU and chipset (not just a chip that supports quicksync)

2. You need to have a specific Linux kernel tied to the Intel Media Studio version and the version of your (supported) CPU

3. You need to patch and compile the Linux kernel with the Media Studio Patches

4. You need to install the iHD user-mode closed source driver and the compatible (provided) libva / vaapi. (yeah, I'm not talking about "vaapi hwaccel"

5. You need to compile rest of the Intel Media Server Studio dependecies for ffmpeg

6. If 1-4 were done correctly, you can successfully run the Intel samples.

7. Get/Compile a version of ffmpeg that uses the Intel Media Server Studio framework.

 

Now, if you missed a point in a previous list, it will not work even on a bare metal.

You want it to run on a UnRaid in a Docker??

 

Please be prepared for a immense amount of work, as that configuration will not exclude any of the 7 steps I described earlier. Your wish just adds more on that. Good luck, and please keep us notified if you have any success! (BTW, just the output of "vainfo" will usually tell enough whether the thing is actually working or not).

 

BR,

Andy777

Link to comment
Share on other sites

I'm a new user to Emby (just installed today) and am considering moving over from Plex mainly due to the improved support for live TV viewing from SiliconDust tuners. My main issue, is that I am running on a low power server (Celeron J1900) and don't really want to upgrade. I am hoping to offload to a GPU. My choices seem to be NVIDIA or Intel QuickSync. It's my understanding that the Celeron J1900 has an onboard GPU that supports Quicksync.

 

I enabled QuickSync on Emby and tried to watch Live TV from my SiliconDust tuner. A SD channel worked, but an HD channel did not. I am attaching the logfile below, but am curious to know if 

  1. Is QuickSync working (since I know there's no way a Celeron can do the transcode by CPU)?
  2. Is my J1900 woefully inadequate for the job even when taking advantage of the onboard GPU?
  3. Would an NVIDIA solution be better?
  4. Am I screwed with this setup :) ?

Thanks, and here's the logfile of the failed transcode of an HD channel:

http://10.99.100.12:8096/emby/videos/cda10c0a8b5c53725d0bb3aa3716cb2f/live.m3u8?DeviceId=4E757K067894&MediaSourceId=3ddf14dea99f4bdcac5e808cf4c3374d_native_37f6e44cdcea6f0be032c85337f9f081&VideoCodec=h264&AudioCodec=mp3,aac&AudioStreamIndex=1&VideoBitrate=3072000&AudioBitrate=128000&MaxAudioChannels=2&MaxFramerate=30&MaxWidth=1920&MaxHeight=1080&Level=50&MaxRefFrames=15&MaxVideoBitDepth=8&Profile=high&PlaySessionId=452a33b68c584908b16a82f12ef1da76&api_key=61c90ac0d4854fa3b1f1d33ae9aa3597&LiveStreamId=1a755974de5dc3461dc6ecae8ddec68b_6ac70aba3e6587e661d9adc842397899_3ddf14dea99f4bdcac5e808cf4c3374d_native_37f6e44cdcea6f0be032c85337f9f081&CopyTimestamps=false&EnableSubtitlesInManifest=false&EnableSplittingOnNonKeyFrames=false

{"Protocol":"Http","Id":"3ddf14dea99f4bdcac5e808cf4c3374d_native_37f6e44cdcea6f0be032c85337f9f081","Path":"http://localhost:8096/LiveTv/LiveStreamFiles/9749eba8721c4608b5a12109fe996037/stream.ts","Type":"Default","Container":"mpegts","ReadAtNativeFramerate":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":false,"IsInfiniteStream":true,"RequiresOpening":true,"RequiresClosing":true,"LiveStreamId":"1a755974de5dc3461dc6ecae8ddec68b_6ac70aba3e6587e661d9adc842397899_3ddf14dea99f4bdcac5e808cf4c3374d_native_37f6e44cdcea6f0be032c85337f9f081","BufferMs":0,"MediaStreams":[{"Codec":"mpeg2video","TimeBase":"1/90000","CodecTimeBase":"1001/30000","IsInterlaced":true,"BitRate":8000000,"RefFrames":1,"IsDefault":false,"IsForced":false,"Height":1080,"Width":1920,"AverageFrameRate":29.97003,"RealFrameRate":29.97003,"Profile":"Main","Type":"Video","AspectRatio":"16:9","Index":0,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"PixelFormat":"yuv420p","Level":4,"IsAnamorphic":false},{"Codec":"ac3","Language":"eng","TimeBase":"1/90000","CodecTimeBase":"1/48000","DisplayTitle":"Eng Dolby Digital 5.1","IsInterlaced":false,"ChannelLayout":"5.1","BitRate":384000,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"Type":"Audio","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0},{"Codec":"ac3","Language":"spa","TimeBase":"1/90000","CodecTimeBase":"1/48000","DisplayTitle":"Spa Dolby Digital mono","IsInterlaced":false,"ChannelLayout":"mono","BitRate":96000,"Channels":1,"SampleRate":48000,"IsDefault":false,"IsForced":false,"Type":"Audio","Index":2,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0}],"PlayableStreamFileNames":[],"Formats":[],"Bitrate":8480000,"RequiredHttpHeaders":{},"DefaultAudioStreamIndex":1}

C:\MyProgramFiles\ffmpeg\bin\ffmpeg.exe -fflags +genpts -c:v mpeg2_qsv  -i "http://localhost:8096/LiveTv/LiveStreamFiles/9749eba8721c4608b5a12109fe996037/stream.ts" -map_metadata -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 3072000 -maxrate 3072000 -bufsize 6144000 -vsync -1 -profile:v high -level 4.1 -force_key_frames "expr:gte(t,n_forced*3)" -vf "yadif=0:-1:0,scale=trunc(min(max(iw\,ih*dar)\,min(1920\,1080*dar))/2)*2:trunc(min(max(iw/dar\,ih)\,min(1920/dar\,1080))/2)*2" -flags -global_header -sc_threshold 0 -codec:a:0 libmp3lame -ac 2 -ab 128000 -af "adelay=1,aresample=async=1,volume=2" -hls_time 3 -start_number 0 -hls_list_size 0 -hls_base_url "hls/4dddfb115e9d58742c34d2a624d6cd14/" -y "C:\Users\Ted\AppData\Roaming\Emby-Server\transcoding-temp\4dddfb115e9d58742c34d2a624d6cd14.m3u8"


ffmpeg version N-81960-g1bda0ee Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --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-libschroedinger --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. 32.100 / 55. 32.100
  libavcodec     57. 61.100 / 57. 61.100
  libavformat    57. 51.103 / 57. 51.103
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 63.100 /  6. 63.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  2.100 /  2.  2.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mpegts, from 'http://localhost:8096/LiveTv/LiveStreamFiles/9749eba8721c4608b5a12109fe996037/stream.ts':
  Duration: N/A, start: 58842.836000, bitrate: N/A
  Program 3100 
    Stream #0:0[0x3e9]: Video: mpeg2video ([128][0][0][0] / 0x0080), nv12, 1920x1080, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x3ea](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, 5.1(side), fltp, 384 kb/s
    Stream #0:2[0x3eb](spa): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, mono, fltp, 96 kb/s (visual impaired)
Output #0, hls, to 'C:\Users\Ted\AppData\Roaming\Emby-Server\transcoding-temp\4dddfb115e9d58742c34d2a624d6cd14.m3u8':
  Metadata:
    encoder         : Lavf57.51.103
    Stream #0:0: Video: h264 (h264_qsv), nv12, 1920x1080, q=2-31, 3072 kb/s, 29.97 fps, 90k tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc57.61.100 h264_qsv
    Side data:
      cpb: bitrate max/min/avg: 3072000/0/3072000 buffer size: 6144000 vbv_delay: -1
    Stream #0:1: Audio: mp3 (libmp3lame), 48000 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc57.61.100 libmp3lame
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (mpeg2_qsv) -> h264 (h264_qsv))
  Stream #0:1 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Link to comment
Share on other sites

Waldonnis

 

I'm a new user to Emby (just installed today) and am considering moving over from Plex mainly due to the improved support for live TV viewing from SiliconDust tuners. My main issue, is that I am running on a low power server (Celeron J1900) and don't really want to upgrade. I am hoping to offload to a GPU. My choices seem to be NVIDIA or Intel QuickSync. It's my understanding that the Celeron J1900 has an onboard GPU that supports Quicksync.

 

I enabled QuickSync on Emby and tried to watch Live TV from my SiliconDust tuner. A SD channel worked, but an HD channel did not. I am attaching the logfile below, but am curious to know if 

  1. Is QuickSync working (since I know there's no way a Celeron can do the transcode by CPU)?
  2. Is my J1900 woefully inadequate for the job even when taking advantage of the onboard GPU?
  3. Would an NVIDIA solution be better?
  4. Am I screwed with this setup :) ?

Thanks, and here's the logfile of the failed transcode of an HD channel:

 

1-2. The J1900 *should* work Quicksync-wise, and it's hard to tell exactly, but ffmpeg seems to acknowledge that it's present.  To be sure, try 'ffmpeg -encoders' and see if you see the requisite qsv encoders in the list. If they're there, then the driver is installed and working.

3. I wouldn't pick NVENC (NVidia) over Quicksync, personally.  The quality of the Quicksync output is arguably better and Intel's implementation a bit more flexible (not limited to 2 streams max and generally supports more options).

4. I doubt it, but if you're running across an error, then a little investigation is in order to get it working.

 

The log doesn't show an error, so it's really hard to tell what's going on.  That being said, recent Intel driver releases seem to be causing issues with hardware decoding, and it looks like it's trying to use it in the command line (the -c:v mpeg2_qsv bit in the ffmpeg command line).  I've experienced random crashes thanks to this when trying to use the hardware decoders during conversions of 3D movies lately and have seen others reporting the same while doing other types of conversions using the hardware decoder.

 

If you have a small recorded file with the same stream/codec layout (mpeg2 video and the two ac3 audio streams), you can try encoding them by hand with a similar command line, but without the '-c:v mpeg2_qsv' switch to narrow down whether or not the issue is with the decoder.  Also, if you can make/find a transcode log that shows an error, that would really help.

 

I'm never sure how familiar people are with ffmpeg, so if you don't know how to modify that command line, just let me know and I'll post it.

  • Like 1
Link to comment
Share on other sites

I think that error above is probably an error coming from the quick sync decoder. one thing we still need to do is allow separate configuration for gpu decoding and encoding. I think for that video gpu decoding may need to be disabled due to the failure, but the encoding will probably still be fine.

  • Like 1
Link to comment
Share on other sites

1-2. The J1900 *should* work Quicksync-wise, and it's hard to tell exactly, but ffmpeg seems to acknowledge that it's present.  To be sure, try 'ffmpeg -encoders' and see if you see the requisite qsv encoders in the list. If they're there, then the driver is installed and working.

3. I wouldn't pick NVENC (NVidia) over Quicksync, personally.  The quality of the Quicksync output is arguably better and Intel's implementation a bit more flexible (not limited to 2 streams max and generally supports more options).

4. I doubt it, but if you're running across an error, then a little investigation is in order to get it working.

 

The log doesn't show an error, so it's really hard to tell what's going on.  That being said, recent Intel driver releases seem to be causing issues with hardware decoding, and it looks like it's trying to use it in the command line (the -c:v mpeg2_qsv bit in the ffmpeg command line).  I've experienced random crashes thanks to this when trying to use the hardware decoders during conversions of 3D movies lately and have seen others reporting the same while doing other types of conversions using the hardware decoder.

 

If you have a small recorded file with the same stream/codec layout (mpeg2 video and the two ac3 audio streams), you can try encoding them by hand with a similar command line, but without the '-c:v mpeg2_qsv' switch to narrow down whether or not the issue is with the decoder.  Also, if you can make/find a transcode log that shows an error, that would really help.

 

I'm never sure how familiar people are with ffmpeg, so if you don't know how to modify that command line, just let me know and I'll post it.

 

@Waldonnis: Thank you for the info. I am trying to avoid adding hardware to the system, so your input is nice to hear. I took a look at the -encoders option, and  "h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)" shows up. So, I guess I need to figure out why the SD stream worked, and the HD stream did not. I'll try and look through them to see as well as to try some of your suggestions with respect to hand encoding. I'm somewhat adept at FFMPEG, but nowhere near the level of sophistication I see on this forum. Below is the logfile from the encoding session that did work in case you have the time to look through it and see why that one DID work as opposed to the HD one. I should have mentioned that my server is on Win10, and the client I was using was a Roku.

http://10.99.100.12:8096/emby/videos/05c99fc5ebd26f6b919a2a4b23f0eff3/live.m3u8?DeviceId=4E757K067894&MediaSourceId=8a7e6029f36645bca74f20693ffe52d7_native_ef25d528dbaf788c5f1c476ebc8196b1&VideoCodec=h264&AudioCodec=mp3,aac&AudioStreamIndex=1&VideoBitrate=3008000&AudioBitrate=192000&MaxAudioChannels=2&MaxFramerate=30&MaxWidth=1920&MaxHeight=1080&Level=50&MaxRefFrames=15&MaxVideoBitDepth=8&Profile=high&PlaySessionId=8b78f7969f3748e688c824fa2006ec9a&api_key=61c90ac0d4854fa3b1f1d33ae9aa3597&LiveStreamId=1a755974de5dc3461dc6ecae8ddec68b_6ac70aba3e6587e661d9adc842397899_8a7e6029f36645bca74f20693ffe52d7_native_ef25d528dbaf788c5f1c476ebc8196b1&CopyTimestamps=false&EnableSubtitlesInManifest=false&EnableSplittingOnNonKeyFrames=false

{"Protocol":"Http","Id":"8a7e6029f36645bca74f20693ffe52d7_native_ef25d528dbaf788c5f1c476ebc8196b1","Path":"http://localhost:8096/LiveTv/LiveStreamFiles/1be174ccfbe74526b452747b83958e27/stream.ts","Type":"Default","Container":"mpegts","ReadAtNativeFramerate":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":false,"IsInfiniteStream":true,"RequiresOpening":true,"RequiresClosing":true,"LiveStreamId":"1a755974de5dc3461dc6ecae8ddec68b_6ac70aba3e6587e661d9adc842397899_8a7e6029f36645bca74f20693ffe52d7_native_ef25d528dbaf788c5f1c476ebc8196b1","BufferMs":0,"MediaStreams":[{"Codec":"mpeg2video","TimeBase":"1/90000","CodecTimeBase":"1001/30000","IsInterlaced":true,"BitRate":1000000,"RefFrames":1,"IsDefault":false,"IsForced":false,"Height":480,"Width":704,"AverageFrameRate":29.97003,"RealFrameRate":29.97003,"Profile":"Main","Type":"Video","AspectRatio":"16:9","Index":0,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"PixelFormat":"yuv420p","Level":8,"IsAnamorphic":false},{"Codec":"ac3","CodecTag":"AC-3","Language":"eng","TimeBase":"1/90000","CodecTimeBase":"1/48000","DisplayTitle":"Eng Dolby Digital stereo","IsInterlaced":false,"ChannelLayout":"stereo","BitRate":192000,"Channels":2,"SampleRate":48000,"IsDefault":false,"IsForced":false,"Type":"Audio","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0}],"PlayableStreamFileNames":[],"Formats":[],"Bitrate":1192000,"RequiredHttpHeaders":{},"DefaultAudioStreamIndex":1}

C:\MyProgramFiles\ffmpeg\bin\ffmpeg.exe -fflags +genpts -c:v mpeg2_qsv  -i "http://localhost:8096/LiveTv/LiveStreamFiles/1be174ccfbe74526b452747b83958e27/stream.ts" -map_metadata -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 1000000 -maxrate 1000000 -bufsize 2000000 -vsync -1 -profile:v high -level 4.1 -force_key_frames "expr:gte(t,n_forced*3)" -vf "yadif=0:-1:0,scale=trunc(min(max(iw\,ih*dar)\,min(1920\,1080*dar))/2)*2:trunc(min(max(iw/dar\,ih)\,min(1920/dar\,1080))/2)*2" -flags -global_header -sc_threshold 0 -codec:a:0 libmp3lame -ac 2 -ab 192000 -af "adelay=1,aresample=async=1" -hls_time 3 -start_number 0 -hls_list_size 0 -hls_base_url "hls/fd912773769cf639b028e405beb517b9/" -y "C:\Users\Ted\AppData\Roaming\Emby-Server\transcoding-temp\fd912773769cf639b028e405beb517b9.m3u8"


ffmpeg version N-81960-g1bda0ee Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --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-libschroedinger --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. 32.100 / 55. 32.100
  libavcodec     57. 61.100 / 57. 61.100
  libavformat    57. 51.103 / 57. 51.103
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 63.100 /  6. 63.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  2.100 /  2.  2.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mpegts, from 'http://localhost:8096/LiveTv/LiveStreamFiles/1be174ccfbe74526b452747b83958e27/stream.ts':
  Duration: N/A, start: 19956.967211, bitrate: N/A
  Program 3335 
    Stream #0:0[0xd17]: Video: mpeg2video ([128][0][0][0] / 0x0080), nv12, 704x480, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0xd18](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
Output #0, hls, to 'C:\Users\Ted\AppData\Roaming\Emby-Server\transcoding-temp\fd912773769cf639b028e405beb517b9.m3u8':
  Metadata:
    encoder         : Lavf57.51.103
    Stream #0:0: Video: h264 (h264_qsv), nv12, 704x480, q=2-31, 1000 kb/s, 29.97 fps, 90k tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc57.61.100 h264_qsv
    Side data:
      cpb: bitrate max/min/avg: 1000000/0/1000000 buffer size: 2000000 vbv_delay: -1
    Stream #0:1: Audio: mp3 (libmp3lame), 48000 Hz, stereo, fltp, 192 kb/s
    Metadata:
      encoder         : Lavc57.61.100 libmp3lame
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (mpeg2_qsv) -> h264 (h264_qsv))
  Stream #0:1 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
frame=   68 fps=0.0 q=-0.0 size=N/A time=00:00:02.23 bitrate=N/A dup=12 drop=0 speed= 4.4x    
frame=  144 fps=143 q=-0.0 size=N/A time=00:00:04.72 bitrate=N/A dup=12 drop=0 speed=4.69x    
frame=  205 fps=134 q=-0.0 size=N/A time=00:00:06.69 bitrate=N/A dup=12 drop=0 speed=4.38x    
frame=  220 fps=108 q=-0.0 size=N/A time=00:00:07.22 bitrate=N/A dup=12 drop=0 speed=3.56x    
frame=  233 fps= 91 q=-0.0 size=N/A time=00:00:07.80 bitrate=N/A dup=12 drop=0 speed=3.06x    
frame=  248 fps= 80 q=-0.0 size=N/A time=00:00:08.23 bitrate=N/A dup=12 drop=0 speed=2.65x    
frame=  265 fps= 73 q=-0.0 size=N/A time=00:00:08.76 bitrate=N/A dup=12 drop=0 speed=2.42x    
frame=  281 fps= 67 q=-0.0 size=N/A time=00:00:09.33 bitrate=N/A dup=12 drop=0 speed=2.23x    
frame=  298 fps= 64 q=-0.0 size=N/A time=00:00:09.91 bitrate=N/A dup=12 drop=0 speed=2.12x    
frame=  311 fps= 60 q=-0.0 size=N/A time=00:00:10.34 bitrate=N/A dup=12 drop=0 speed=1.99x    
frame=  328 fps= 58 q=-0.0 size=N/A time=00:00:10.87 bitrate=N/A dup=12 drop=0 speed=1.91x    
frame=  346 fps= 56 q=-0.0 size=N/A time=00:00:11.44 bitrate=N/A dup=12 drop=0 speed=1.85x    
frame=  359 fps= 54 q=-0.0 size=N/A time=00:00:11.85 bitrate=N/A dup=12 drop=0 speed=1.77x    
frame=  376 fps= 52 q=-0.0 size=N/A time=00:00:12.40 bitrate=N/A dup=12 drop=0 speed=1.72x    
frame=  386 fps= 50 q=-0.0 size=N/A time=00:00:12.91 bitrate=N/A dup=12 drop=0 speed=1.68x    
frame=  408 fps= 50 q=-0.0 size=N/A time=00:00:13.39 bitrate=N/A dup=12 drop=0 speed=1.63x    
frame=  421 fps= 48 q=-0.0 size=N/A time=00:00:13.94 bitrate=N/A dup=12 drop=0 speed= 1.6x    
frame=  435 fps= 47 q=-0.0 size=N/A time=00:00:14.37 bitrate=N/A dup=12 drop=0 speed=1.55x    
frame=  451 fps= 46 q=-0.0 size=N/A time=00:00:14.92 bitrate=N/A dup=12 drop=0 speed=1.53x    
frame=  469 fps= 46 q=-0.0 size=N/A time=00:00:15.48 bitrate=N/A dup=12 drop=0 speed=1.51x    
frame=  480 fps= 45 q=-0.0 size=N/A time=00:00:15.96 bitrate=N/A dup=12 drop=0 speed=1.48x    
frame=  502 fps= 44 q=-0.0 size=N/A time=00:00:16.46 bitrate=N/A dup=12 drop=0 speed=1.45x    
frame=  518 fps= 44 q=-0.0 size=N/A time=00:00:17.01 bitrate=N/A dup=12 drop=0 speed=1.43x    
frame=  535 fps= 43 q=-0.0 size=N/A time=00:00:17.59 bitrate=N/A dup=12 drop=0 speed=1.41x    
frame=  548 fps= 42 q=-0.0 size=N/A time=00:00:18.16 bitrate=N/A dup=12 drop=0 speed= 1.4x    
frame=  568 fps= 42 q=-0.0 size=N/A time=00:00:18.74 bitrate=N/A dup=12 drop=0 speed=1.39x    
frame=  579 fps= 41 q=-0.0 size=N/A time=00:00:19.12 bitrate=N/A dup=12 drop=0 speed=1.37x    
frame=  593 fps= 41 q=-0.0 size=N/A time=00:00:19.70 bitrate=N/A dup=12 drop=0 speed=1.36x    
frame=  609 fps= 41 q=-0.0 size=N/A time=00:00:20.18 bitrate=N/A dup=12 drop=0 speed=1.35x    
frame=  623 fps= 40 q=-0.0 size=N/A time=00:00:20.68 bitrate=N/A dup=12 drop=0 speed=1.33x    
frame=  638 fps= 40 q=-0.0 size=N/A time=00:00:21.24 bitrate=N/A dup=12 drop=0 speed=1.32x    
frame=  657 fps= 40 q=-0.0 size=N/A time=00:00:21.81 bitrate=N/A dup=12 drop=0 speed=1.31x    
frame=  671 fps= 39 q=-0.0 size=N/A time=00:00:22.20 bitrate=N/A dup=12 drop=0 speed= 1.3x    
frame=  687 fps= 39 q=-0.0 size=N/A time=00:00:22.82 bitrate=N/A dup=12 drop=0 speed=1.29x    
frame=  704 fps= 39 q=-0.0 size=N/A time=00:00:23.35 bitrate=N/A dup=12 drop=0 speed=1.28x    
frame=  721 fps= 39 q=-0.0 size=N/A time=00:00:23.92 bitrate=N/A dup=12 drop=0 speed=1.28x    
frame=  736 fps= 38 q=-0.0 size=N/A time=00:00:24.33 bitrate=N/A dup=12 drop=0 speed=1.27x    
frame=  751 fps= 38 q=-0.0 size=N/A time=00:00:24.88 bitrate=N/A dup=12 drop=0 speed=1.26x    
frame=  763 fps= 38 q=-0.0 size=N/A time=00:00:25.46 bitrate=N/A dup=12 drop=0 speed=1.26x    
frame=  778 fps= 37 q=-0.0 size=N/A time=00:00:25.89 bitrate=N/A dup=12 drop=0 speed=1.25x    
frame=  793 fps= 37 q=-0.0 size=N/A time=00:00:26.42 bitrate=N/A dup=12 drop=0 speed=1.24x    
frame=  809 fps= 37 q=-0.0 size=N/A time=00:00:27.00 bitrate=N/A dup=12 drop=0 speed=1.24x    
frame=  825 fps= 37 q=-0.0 size=N/A time=00:00:27.40 bitrate=N/A dup=12 drop=0 speed=1.23x    
frame=  839 fps= 37 q=-0.0 size=N/A time=00:00:28.00 bitrate=N/A dup=12 drop=0 speed=1.22x    
frame=  855 fps= 37 q=-0.0 size=N/A time=00:00:28.53 bitrate=N/A dup=12 drop=0 speed=1.22x    
frame=  878 fps= 37 q=-0.0 size=N/A time=00:00:29.11 bitrate=N/A dup=12 drop=0 speed=1.22x    
frame=  891 fps= 37 q=-0.0 size=N/A time=00:00:29.52 bitrate=N/A dup=12 drop=0 speed=1.21x    
frame=  905 fps= 36 q=-0.0 size=N/A time=00:00:30.09 bitrate=N/A dup=12 drop=0 speed=1.21x    
frame=  927 fps= 36 q=-0.0 size=N/A time=00:00:30.64 bitrate=N/A dup=12 drop=0 speed= 1.2x    
frame=  943 fps= 36 q=-0.0 size=N/A time=00:00:31.22 bitrate=N/A dup=12 drop=0 speed= 1.2x    
frame=  959 fps= 36 q=-0.0 size=N/A time=00:00:31.66 bitrate=N/A dup=12 drop=0 speed=1.19x    
frame=  973 fps= 36 q=-0.0 size=N/A time=00:00:32.18 bitrate=N/A dup=12 drop=0 speed=1.19x    
frame=  986 fps= 36 q=-0.0 size=N/A time=00:00:32.76 bitrate=N/A dup=12 drop=0 speed=1.19x    
frame= 1005 fps= 36 q=-0.0 size=N/A time=00:00:33.19 bitrate=N/A dup=12 drop=0 speed=1.18x    
frame= 1019 fps= 36 q=-0.0 size=N/A time=00:00:33.76 bitrate=N/A dup=12 drop=0 speed=1.18x    
frame= 1032 fps= 35 q=-0.0 size=N/A time=00:00:34.29 bitrate=N/A dup=12 drop=0 speed=1.18x    
frame= 1048 fps= 35 q=-0.0 size=N/A time=00:00:34.87 bitrate=N/A dup=12 drop=0 speed=1.18x    
frame= 1062 fps= 35 q=-0.0 size=N/A time=00:00:35.30 bitrate=N/A dup=12 drop=0 speed=1.17x    
frame= 1076 fps= 35 q=-0.0 size=N/A time=00:00:35.83 bitrate=N/A dup=12 drop=0 speed=1.17x    
frame= 1095 fps= 35 q=-0.0 size=N/A time=00:00:36.40 bitrate=N/A dup=12 drop=0 speed=1.17x    
frame= 1109 fps= 35 q=-0.0 size=N/A time=00:00:36.79 bitrate=N/A dup=12 drop=0 speed=1.16x    
frame= 1124 fps= 35 q=-0.0 size=N/A time=00:00:37.39 bitrate=N/A dup=12 drop=0 speed=1.16x    
frame= 1141 fps= 35 q=-0.0 size=N/A time=00:00:37.94 bitrate=N/A dup=12 drop=0 speed=1.16x    
frame= 1154 fps= 35 q=-0.0 size=N/A time=00:00:38.52 bitrate=N/A dup=12 drop=0 speed=1.16x    
frame= 1168 fps= 35 q=-0.0 size=N/A time=00:00:38.92 bitrate=N/A dup=12 drop=0 speed=1.15x    
frame= 1188 fps= 35 q=-0.0 size=N/A time=00:00:39.48 bitrate=N/A dup=12 drop=0 speed=1.15x    
frame= 1203 fps= 34 q=-0.0 size=N/A time=00:00:40.05 bitrate=N/A dup=12 drop=0 speed=1.15x    
frame= 1221 fps= 35 q=-0.0 size=N/A time=00:00:40.63 bitrate=N/A dup=12 drop=0 speed=1.15x    
frame= 1234 fps= 34 q=-0.0 size=N/A time=00:00:41.06 bitrate=N/A dup=12 drop=0 speed=1.14x    
frame= 1255 fps= 34 q=-0.0 size=N/A time=00:00:41.61 bitrate=N/A dup=12 drop=0 speed=1.14x    
frame= 1267 fps= 34 q=-0.0 size=N/A time=00:00:42.16 bitrate=N/A dup=12 drop=0 speed=1.14x    
frame= 1280 fps= 34 q=-0.0 size=N/A time=00:00:42.67 bitrate=N/A dup=12 drop=0 speed=1.14x    
frame= 1295 fps= 34 q=-0.0 size=N/A time=00:00:43.12 bitrate=N/A dup=12 drop=0 speed=1.14x    
frame= 1312 fps= 34 q=-0.0 size=N/A time=00:00:43.70 bitrate=N/A dup=12 drop=0 speed=1.13x    
frame= 1325 fps= 34 q=-0.0 size=N/A time=00:00:44.11 bitrate=N/A dup=12 drop=0 speed=1.13x    
frame= 1342 fps= 34 q=-0.0 size=N/A time=00:00:44.68 bitrate=N/A dup=12 drop=0 speed=1.13x    
frame= 1358 fps= 34 q=-0.0 size=N/A time=00:00:45.24 bitrate=N/A dup=12 drop=0 speed=1.13x    
frame= 1374 fps= 34 q=-0.0 size=N/A time=00:00:45.81 bitrate=N/A dup=12 drop=0 speed=1.13x    
frame= 1389 fps= 34 q=-0.0 size=N/A time=00:00:46.20 bitrate=N/A dup=12 drop=0 speed=1.12x    
frame= 1405 fps= 34 q=-0.0 size=N/A time=00:00:46.77 bitrate=N/A dup=12 drop=0 speed=1.13x    
frame= 1419 fps= 34 q=-0.0 size=N/A time=00:00:47.25 bitrate=N/A dup=12 drop=0 speed=1.12x    
frame= 1434 fps= 34 q=-0.0 size=N/A time=00:00:47.73 bitrate=N/A dup=12 drop=0 speed=1.12x    
frame= 1450 fps= 34 q=-0.0 size=N/A time=00:00:48.31 bitrate=N/A dup=12 drop=0 speed=1.12x    
frame= 1463 fps= 34 q=-0.0 size=N/A time=00:00:48.74 bitrate=N/A dup=12 drop=0 speed=1.12x    
frame= 1478 fps= 33 q=-0.0 size=N/A time=00:00:49.27 bitrate=N/A dup=12 drop=0 speed=1.12x    
frame= 1494 fps= 33 q=-0.0 size=N/A time=00:00:49.84 bitrate=N/A dup=12 drop=0 speed=1.12x    
frame= 1508 fps= 33 q=-0.0 size=N/A time=00:00:50.28 bitrate=N/A dup=12 drop=0 speed=1.11x    
frame= 1526 fps= 33 q=-0.0 size=N/A time=00:00:50.80 bitrate=N/A dup=12 drop=0 speed=1.11x    
frame= 1543 fps= 33 q=-0.0 size=N/A time=00:00:51.38 bitrate=N/A dup=12 drop=0 speed=1.11x    
frame= 1555 fps= 33 q=-0.0 size=N/A time=00:00:51.86 bitrate=N/A dup=12 drop=0 speed=1.11x    
frame= 1571 fps= 33 q=-0.0 size=N/A time=00:00:52.34 bitrate=N/A dup=12 drop=0 speed=1.11x    
frame= 1588 fps= 33 q=-0.0 size=N/A time=00:00:52.92 bitrate=N/A dup=12 drop=0 speed=1.11x    
frame= 1600 fps= 33 q=-0.0 size=N/A time=00:00:53.35 bitrate=N/A dup=12 drop=0 speed=1.11x    
frame= 1618 fps= 33 q=-0.0 size=N/A time=00:00:53.88 bitrate=N/A dup=12 drop=0 speed=1.11x    
frame= 1634 fps= 33 q=-0.0 size=N/A time=00:00:54.45 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1650 fps= 33 q=-0.0 size=N/A time=00:00:55.03 bitrate=N/A dup=12 drop=0 speed=1.11x    
frame= 1664 fps= 33 q=-0.0 size=N/A time=00:00:55.46 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1683 fps= 33 q=-0.0 size=N/A time=00:00:55.99 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1697 fps= 33 q=-0.0 size=N/A time=00:00:56.56 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1713 fps= 33 q=-0.0 size=N/A time=00:00:56.97 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1729 fps= 33 q=-0.0 size=N/A time=00:00:57.57 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1744 fps= 33 q=-0.0 size=N/A time=00:00:58.10 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1760 fps= 33 q=-0.0 size=N/A time=00:00:58.68 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1772 fps= 33 q=-0.0 size=N/A time=00:00:59.20 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1791 fps= 33 q=-0.0 size=N/A time=00:00:59.66 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1808 fps= 33 q=-0.0 size=N/A time=00:01:00.21 bitrate=N/A dup=12 drop=0 speed= 1.1x    
frame= 1824 fps= 33 q=-0.0 size=N/A time=00:01:00.64 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1838 fps= 33 q=-0.0 size=N/A time=00:01:01.20 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1852 fps= 33 q=-0.0 size=N/A time=00:01:01.75 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1865 fps= 33 q=-0.0 size=N/A time=00:01:02.25 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1884 fps= 33 q=-0.0 size=N/A time=00:01:02.71 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1902 fps= 33 q=-0.0 size=N/A time=00:01:03.28 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1918 fps= 33 q=-0.0 size=N/A time=00:01:03.86 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1930 fps= 33 q=-0.0 size=N/A time=00:01:04.27 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1945 fps= 33 q=-0.0 size=N/A time=00:01:04.82 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1961 fps= 33 q=-0.0 size=N/A time=00:01:05.40 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1974 fps= 33 q=-0.0 size=N/A time=00:01:05.83 bitrate=N/A dup=12 drop=0 speed=1.09x    
frame= 1992 fps= 33 q=-0.0 size=N/A time=00:01:06.36 bitrate=N/A dup=12 drop=0 speed=1.08x    
frame= 2007 fps= 33 q=-0.0 size=N/A time=00:01:06.93 bitrate=N/A dup=12 drop=0 speed=1.08x    
frame= 2021 fps= 32 q=-0.0 size=N/A time=00:01:07.34 bitrate=N/A dup=12 drop=0 speed=1.08x    
frame= 2036 fps= 32 q=-0.0 size=N/A time=00:01:07.89 bitrate=N/A dup=12 drop=0 speed=1.08x    
frame= 2052 fps= 32 q=-0.0 size=N/A time=00:01:08.47 bitrate=N/A dup=12 drop=0 speed=1.08x    
frame= 2069 fps= 32 q=-0.0 size=N/A time=00:01:08.90 bitrate=N/A dup=12 drop=0 speed=1.08x    
frame= 2087 fps= 32 q=-0.0 size=N/A time=00:01:09.45 bitrate=N/A dup=12 drop=0 speed=1.08x    
frame= 2101 fps= 32 q=-0.0 size=N/A time=00:01:10.00 bitrate=N/A dup=12 drop=0 speed=1.08x    
frame= 2102 fps= 32 q=-0.0 Lsize=N/A time=00:01:10.08 bitrate=N/A dup=12 drop=0 speed=1.08x    
video:8719kB audio:1643kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Link to comment
Share on other sites

Waldonnis

 

@Waldonnis: Thank you for the info. I am trying to avoid adding hardware to the system, so your input is nice to hear. I took a look at the -encoders option, and  "h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)" shows up. So, I guess I need to figure out why the SD stream worked, and the HD stream did not. I'll try and look through them to see as well as to try some of your suggestions with respect to hand encoding. I'm somewhat adept at FFMPEG, but nowhere near the level of sophistication I see on this forum. Below is the logfile from the encoding session that did work in case you have the time to look through it and see why that one DID work as opposed to the HD one. I should have mentioned that my server is on Win10, and the client I was using was a Roku.

 

It's possible that the hardware decoder (or really, the driver for it) didn't have any issues with the SD stream, so it succeeded.  Bear in mind that the decoder issues that both Luke and I have mentioned don't imply anything is wrong with the input file/stream - quite the contrary, actually, as I'm pretty convinced based on my own experience that it's a driver issue that just pops up at times for no discernible reason.  I tried to encode one of my files three different times and it crashed at a different point each time... *shrugs*  Other times, it succeeded without issue.  Others have reported similar issues in various tool-related threads, so we're not alone there.

 

I just disable hardware decoding now (or just omit the option to use it) when encoding or working with video files lately.  Granted, most of what I transcode/re-encode are static files and I rarely need to output a stream, but outside of HEVC/VP9, software decoding of MPEG-2 and h.264 is often fast enough on modern processors for it not to make much of a difference.

 

Back on topic, though, from the successful log, nothing different is being done there, or at least nothing unexpected compared to the HD log.  Definitely check back when you get a chance to run manual tests and let us know how that went without the hardware decoding.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...