adrik 1 Posted November 30, 2015 Posted November 30, 2015 (edited) Hi, I've been experimenting with Emby (and comparing plex/kodi) over the past couple of days for my existing ~500 movie collection of mixed formats including about half in ripped-dvd MovieName>VIDEO_TS>MovieFiles structure. Would you please be able to help me with the following final problem which I have: • movies structured as "moviename > VIDEO_TS > VOBfiles" show up in library yet do not play (tested on web client and android app) [screenshots attached] • movies structured as "moviename > VOBfiles" show up in library and DO play just fine • I would like to figure out how to use the first hierarchy since that's dvd standard and how my files currently exist What I've tried: • I deleted that xml file visible in the screenshot • the emby naming guidelines suggest that a video_ts folder or a video_ts.ifo file will work, however I have not been able to make the folder route work. • searching google and the forums, I've only found people having the reverse problem • a similar problem in Kodi was solved by editing the regex; however, I have not been able to locate that in emby Thanks! -Adrik my testing setup: emby server 3 downloaded yesterday mac mini 2014 model; 2.6ghz intel core i5; 8gb ram; osx 10.10.2 viewing in android app and web client on chrome Version 46.0.2490.86 (64-bit) after i get everything working, putting emby on my freeNAS Edited November 30, 2015 by adrik
Luke 38850 Posted November 30, 2015 Posted November 30, 2015 Hi, welcome. VIDEO_TS folder structures are currently only fully supported by our htpc apps such as Emby for Windows Media Center, Emby Theater, and Emby for Kodi. The other apps don't have native support for these and have to rely on server transcoding, and transcoding of folder rip structures on the fly is not fully supported. We consider it experimental - we'll make an attempt to pass the structure into ffmpeg and sometimes it will be successful, but most of the time it won't. So in short - yes these are supported as part of your library, but only playable from apps that have native dvd support.
adrik 1 Posted November 30, 2015 Author Posted November 30, 2015 Thank you very much for the reply! The server transcoding has been working flawlessly through ffmpeg (slight loss of detail, not bad) with VIDEO_TS files but only if I pull them out of the VIDEO_TS folder... It sounds like from what you are saying; recognizing the folder structure happens after Emby has handed the movie to ffmpeg, is that correct? • Where would I dive in to tweak what Emby hands to ffmpeg so that Emby gives ffmpeg the contents of the movie's video_ts subfolder instead of the movie's folder itlsef - would I have to do a full fork or is there a simpler way in? (I'm thinking similar to how easy it is to adjust Kodi's regex)
Luke 38850 Posted November 30, 2015 Posted November 30, 2015 No we already know that it's a folder structure, and we pass the concatenated vob list into ffmpeg and that's where the problem lies because a vob list is not the same thing technically. we can't just pass it the video_ts folder because ffmpeg has no native support for it. However - if a dvd happens to only have one vob then it will work just fine in most cases, same goes for bluray and m2ts. Going any further than this is a really big project. There's no quick tweak you can make.
adrik 1 Posted November 30, 2015 Author Posted November 30, 2015 Thanks for continuing to explain, I don't have much experience with emby or ffmpeg. Within the bounds of what you're saying, it sounds like my result should be the same whether the files are inside the video_ts folder or not - in both cases, Emby identifies the files and concatenates them for ffmpeg? While making Emby more sophisticated about choosing vob files sounds like a large journey, I do not think that is my problem. In these two attached screenshots, the first one with the folder does not play, and the second one with all vob files moved up one level does play. If Emby understands the folder structure, why would those two cases cause a difference in the concatenated list that's sent to ffmpeg?
Luke 38850 Posted November 30, 2015 Posted November 30, 2015 Without looking at log files I don't really know but I would expect it to be hit or miss given that it's experimental and doesn't get a whole lot if testing
adrik 1 Posted December 3, 2015 Author Posted December 3, 2015 (edited) After some more digging, the point I'm now struggling with is: where in the code does the list of playable files for a video get determined? The place I thought in the video.cs controller does not appear to be it. Long version of the question: When I use the web client to play a dvd with the structure [ movie-name > VOB-files ], the server logs show the vobs correctly sent to ffmpeg as concat:"/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_1.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_2.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_3.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_4.VOB" 2015-12-02 17:12:06.8414 Info - HttpServer: HTTP Response 401 to 127.0.0.1. Time: 2ms. http://localhost:8096/emby/ScheduledTasks?IsEnabled=true 2015-12-02 17:12:07.0333 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/Users/e88e68164f0b47b397310b625f47e7a6/Items/8844de70dbb26d2a9d317e8e204250e8. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:12:07.0487 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 15ms. http://192.168.1.187:8096/emby/Users/e88e68164f0b47b397310b625f47e7a6/Items/8844de70dbb26d2a9d317e8e204250e8 2015-12-02 17:12:07.0680 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/Users/e88e68164f0b47b397310b625f47e7a6/Items/8844de70dbb26d2a9d317e8e204250e8/Intros. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:12:07.0789 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 11ms. http://192.168.1.187:8096/emby/Users/e88e68164f0b47b397310b625f47e7a6/Items/8844de70dbb26d2a9d317e8e204250e8/Intros 2015-12-02 17:12:07.0955 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/Playback/BitrateTest?Size=1000000. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:12:07.1414 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 46ms. http://192.168.1.187:8096/emby/Playback/BitrateTest?Size=1000000 2015-12-02 17:12:07.1637 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/Playback/BitrateTest?Size=2400000. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:12:07.2316 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 68ms. http://192.168.1.187:8096/emby/Playback/BitrateTest?Size=2400000 2015-12-02 17:12:07.2862 Info - HttpServer: HTTP POST http://192.168.1.187:8096/emby/Items/8844de70dbb26d2a9d317e8e204250e8/PlaybackInfo?UserId=e88e68164f0b47b397310b625f47e7a6&StartTimeTicks=0. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:12:07.3122 Info - App: Bitrate exceeds DirectPlay limit 2015-12-02 17:12:07.3122 Info - App: Bitrate exceeds DirectPlay limit 2015-12-02 17:12:07.3122 Info - App: Profile: Unknown Profile, Path: /Users/guy/Movies/Organized/Bugs Life (1998) TS, isEligibleForDirectPlay: False, isEligibleForDirectStream: False 2015-12-02 17:12:07.3190 Info - App: Bitrate exceeds DirectPlay limit 2015-12-02 17:12:07.3190 Info - App: Bitrate exceeds DirectPlay limit 2015-12-02 17:12:07.3190 Info - App: Profile: Unknown Profile, Path: /Users/guy/Movies/Organized/Bugs Life (1998) TS, isEligibleForDirectPlay: False, isEligibleForDirectStream: False 2015-12-02 17:12:07.3343 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 48ms. http://192.168.1.187:8096/emby/Items/8844de70dbb26d2a9d317e8e204250e8/PlaybackInfo?UserId=e88e68164f0b47b397310b625f47e7a6&StartTimeTicks=0 2015-12-02 17:12:07.4405 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/Items/8844de70dbb26d2a9d317e8e204250e8/Images/Logo?height=42&tag=c026753a68fd06b369897170943d2cfc&quality=90. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:12:07.4516 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 11ms. http://192.168.1.187:8096/emby/Items/8844de70dbb26d2a9d317e8e204250e8/Images/Logo?height=42&tag=c026753a68fd06b369897170943d2cfc&quality=90 2015-12-02 17:12:07.6076 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/videos/8844de70dbb26d2a9d317e8e204250e8/master.m3u8?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=8844de70dbb26d2a9d317e8e204250e8&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=2&VideoBitrate=150268235&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=2591261be290463fa576aa2e8ba1fad3&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:12:07.6309 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 23ms. http://192.168.1.187:8096/emby/videos/8844de70dbb26d2a9d317e8e204250e8/master.m3u8?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=8844de70dbb26d2a9d317e8e204250e8&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=2&VideoBitrate=150268235&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=2591261be290463fa576aa2e8ba1fad3&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false 2015-12-02 17:12:07.6505 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/videos/8844de70dbb26d2a9d317e8e204250e8/main.m3u8?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=8844de70dbb26d2a9d317e8e204250e8&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=2&VideoBitrate=150268235&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=2591261be290463fa576aa2e8ba1fad3&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:12:07.6949 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 44ms. http://192.168.1.187:8096/emby/videos/8844de70dbb26d2a9d317e8e204250e8/main.m3u8?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=8844de70dbb26d2a9d317e8e204250e8&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=2&VideoBitrate=150268235&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=2591261be290463fa576aa2e8ba1fad3&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false 2015-12-02 17:12:08.1999 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/videos/8844de70dbb26d2a9d317e8e204250e8/hls1/main/0.ts?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=8844de70dbb26d2a9d317e8e204250e8&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=2&VideoBitrate=150268235&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=2591261be290463fa576aa2e8ba1fad3&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:12:08.2141 Info - App: /Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/ffmpeg/20150917/ffmpeg -probesize 1G -analyzeduration 200M -i concat:"/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_1.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_2.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_3.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_4.VOB" -map_metadata -1 -threads 0 -map 0:1 -map 0:2 -map -0:s -codec:v:0 libx264 -pix_fmt yuv420p -preset superfast -crf 23 -b:v 150268235 -maxrate 150268235 -bufsize 300536470 -vsync vfr -profile:v high -level 41 -force_key_frames "expr:gte(t,n_forced*3)" -vf "scale=trunc(oh*a/2)*2:min(ih\,1080)" -flags -global_header -sc_threshold 0 -codec:a:0 aac -strict experimental -ac 6 -ab 320000 -af "adelay=1,aresample=async=1" -hls_time 3 -start_number 0 -hls_list_size 0 -y "/Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/transcoding-temp/cef86fdb53ecff0394482074a76589da.m3u8" 2015-12-02 17:12:08.9496 Info - App: returning /Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/transcoding-temp/cef86fdb53ecff0394482074a76589da0.ts 2015-12-02 17:12:08.9612 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 761ms. http://192.168.1.187:8096/emby/videos/8844de70dbb26d2a9d317e8e204250e8/hls1/main/0.ts?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=8844de70dbb26d2a9d317e8e204250e8&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=2&VideoBitrate=150268235&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=2591261be290463fa576aa2e8ba1fad3&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false 2015-12-02 17:12:09.0326 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/videos/8844de70dbb26d2a9d317e8e204250e8/hls1/main/1.ts?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=8844de70dbb26d2a9d317e8e204250e8&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=2&VideoBitrate=150268235&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=2591261be290463fa576aa2e8ba1fad3&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 However, when I play a dvd with the structure [ movie-name > VIDEO_TS > VOB-files ], the server logs show Instead of the concat, there is an incorrect 'file:"/Users/guy/Movies/Organized/Adaptation (2002) - 720x480 TS MPEG"' 2015-12-02 17:25:11.8709 Info - HttpServer: HTTP Response 401 to 127.0.0.1. Time: 1ms. http://localhost:8096/emby/ScheduledTasks?IsEnabled=true 2015-12-02 17:25:12.4457 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/Plugins/SecurityInfo. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:25:12.4472 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 1ms. http://192.168.1.187:8096/emby/Plugins/SecurityInfo 2015-12-02 17:25:12.4794 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/Users/e88e68164f0b47b397310b625f47e7a6/Items/9448276e179a0acf5bd52430e4fa1ad4. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:25:12.4916 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 12ms. http://192.168.1.187:8096/emby/Users/e88e68164f0b47b397310b625f47e7a6/Items/9448276e179a0acf5bd52430e4fa1ad4 2015-12-02 17:25:12.5094 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/Users/e88e68164f0b47b397310b625f47e7a6/Items/9448276e179a0acf5bd52430e4fa1ad4/Intros. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:25:12.5126 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 3ms. http://192.168.1.187:8096/emby/Users/e88e68164f0b47b397310b625f47e7a6/Items/9448276e179a0acf5bd52430e4fa1ad4/Intros 2015-12-02 17:25:12.5359 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/Playback/BitrateTest?Size=1000000. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:25:12.5915 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 55ms. http://192.168.1.187:8096/emby/Playback/BitrateTest?Size=1000000 2015-12-02 17:25:12.6121 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/Playback/BitrateTest?Size=2400000. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:25:12.6875 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 75ms. http://192.168.1.187:8096/emby/Playback/BitrateTest?Size=2400000 2015-12-02 17:25:12.7872 Info - HttpServer: HTTP POST http://192.168.1.187:8096/emby/Items/9448276e179a0acf5bd52430e4fa1ad4/PlaybackInfo?UserId=e88e68164f0b47b397310b625f47e7a6&StartTimeTicks=0. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:25:12.7891 Info - App: Bitrate exceeds DirectPlay limit 2015-12-02 17:25:12.7891 Info - App: Bitrate exceeds DirectPlay limit 2015-12-02 17:25:12.7891 Info - App: Profile: Unknown Profile, Path: /Users/guy/Movies/Organized/Adaptation (2002) - 720x480 TS MPEG, isEligibleForDirectPlay: False, isEligibleForDirectStream: False 2015-12-02 17:25:12.7891 Info - App: Bitrate exceeds DirectPlay limit 2015-12-02 17:25:12.7891 Info - App: Bitrate exceeds DirectPlay limit 2015-12-02 17:25:12.7891 Info - App: Profile: Unknown Profile, Path: /Users/guy/Movies/Organized/Adaptation (2002) - 720x480 TS MPEG, isEligibleForDirectPlay: False, isEligibleForDirectStream: False 2015-12-02 17:25:12.7898 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 2ms. http://192.168.1.187:8096/emby/Items/9448276e179a0acf5bd52430e4fa1ad4/PlaybackInfo?UserId=e88e68164f0b47b397310b625f47e7a6&StartTimeTicks=0 2015-12-02 17:25:13.0412 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/videos/9448276e179a0acf5bd52430e4fa1ad4/master.m3u8?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=9448276e179a0acf5bd52430e4fa1ad4&VideoCodec=h264&AudioCodec=aac&VideoBitrate=119680000&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=4fecfcb2144941a09c496fdeaf9dd924&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:25:13.0431 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 2ms. http://192.168.1.187:8096/emby/videos/9448276e179a0acf5bd52430e4fa1ad4/master.m3u8?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=9448276e179a0acf5bd52430e4fa1ad4&VideoCodec=h264&AudioCodec=aac&VideoBitrate=119680000&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=4fecfcb2144941a09c496fdeaf9dd924&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false 2015-12-02 17:25:13.1348 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/videos/9448276e179a0acf5bd52430e4fa1ad4/main.m3u8?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=9448276e179a0acf5bd52430e4fa1ad4&VideoCodec=h264&AudioCodec=aac&VideoBitrate=119680000&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=4fecfcb2144941a09c496fdeaf9dd924&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:25:13.1522 Info - HttpServer: HTTP Response 200 to 192.168.1.125. Time: 17ms. http://192.168.1.187:8096/emby/videos/9448276e179a0acf5bd52430e4fa1ad4/main.m3u8?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=9448276e179a0acf5bd52430e4fa1ad4&VideoCodec=h264&AudioCodec=aac&VideoBitrate=119680000&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=4fecfcb2144941a09c496fdeaf9dd924&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false 2015-12-02 17:25:13.6625 Info - HttpServer: HTTP GET http://192.168.1.187:8096/emby/videos/9448276e179a0acf5bd52430e4fa1ad4/hls1/main/0.ts?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=9448276e179a0acf5bd52430e4fa1ad4&VideoCodec=h264&AudioCodec=aac&VideoBitrate=119680000&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=4fecfcb2144941a09c496fdeaf9dd924&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 2015-12-02 17:25:13.6641 Info - App: /Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/ffmpeg/20150917/ffmpeg -i file:"/Users/guy/Movies/Organized/Adaptation (2002) - 720x480 TS MPEG" -map_metadata -1 -threads 0 -sn -codec:v:0 libx264 -pix_fmt yuv420p -preset superfast -crf 23 -b:v 119680000 -maxrate 119680000 -bufsize 239360000 -vsync vfr -profile:v high -level 41 -force_key_frames "expr:gte(t,n_forced*3)" -vf "scale=trunc(oh*a/2)*2:min(ih\,1080)" -flags -global_header -sc_threshold 0 -codec:a:0 aac -strict experimental -ac 6 -ab 320000 -af "adelay=1,aresample=async=1" -hls_time 3 -start_number 0 -hls_list_size 0 -y "/Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/transcoding-temp/7349279b4e7f01728021a3cf1bf02ff0.m3u8" 2015-12-02 17:25:13.6922 Info - App: FFMpeg exited with code 1 2015-12-02 17:25:13.7850 Info - App: returning /Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/transcoding-temp/7349279b4e7f01728021a3cf1bf02ff00.ts 2015-12-02 17:25:16.8669 Info - HttpServer: HTTP GET http://localhost:8096/emby/ScheduledTasks?IsEnabled=true. UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 2015-12-02 17:25:16.8678 Error - HttpAsyncTaskHandler: Error occured while Processing Request: Access token is invalid or expired. *** Error Report *** Version: 3.0.5781.4 Command line: /Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/MediaBrowser.Server.Mono.exe Operating system: Unix 14.1.0.0 Processor count: 4 64-Bit OS: False 64-Bit Process: False Program data path: /Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server Mono: 4.0.4 ((detached/d481017 Mon Sep 28 17:32:19 EDT 2015) Application Path: /Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/MediaBrowser.Server.Mono.exe Access token is invalid or expired. MediaBrowser.Controller.Net.SecurityException at MediaBrowser.Server.Implementations.HttpServer.Security.AuthService.ValidateSecurityToken (IServiceRequest request, System.String token) [0x00000] in <filename unknown>:0 at MediaBrowser.Server.Implementations.HttpServer.Security.AuthService.ValidateUser (IServiceRequest request, IAuthenticationAttributes authAttribtues) [0x00000] in <filename unknown>:0 at MediaBrowser.Server.Implementations.HttpServer.Security.AuthService.Authenticate (IServiceRequest request, IAuthenticationAttributes authAttribtues) [0x00000] in <filename unknown>:0 at MediaBrowser.Controller.Net.AuthenticatedAttribute.RequestFilter (IRequest request, IResponse response, System.Object requestDto) [0x00000] in <filename unknown>:0 at ServiceStack.ServiceStackHost.ApplyRequestFiltersSingle (IRequest req, IResponse res, System.Object requestDto) [0x00000] in <filename unknown>:0 at ServiceStack.ServiceStackHost.ApplyRequestFilters (IRequest req, IResponse res, System.Object requestDto) [0x00000] in <filename unknown>:0 at ServiceStack.Host.RestHandler.ProcessRequestAsync (IRequest httpReq, IResponse httpRes, System.String operationName) [0x00000] in <filename unknown>:0 2015-12-02 17:25:16.8678 Info - HttpServer: HTTP Response 401 to 127.0.0.1. Time: 1ms. http://localhost:8096/emby/ScheduledTasks?IsEnabled=true In the transcoder logs, the bugs life (correct) and adaptation (incorrect) respectively are http://192.168.1.187:8096/emby/videos/8844de70dbb26d2a9d317e8e204250e8/hls1/main/0.ts?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=8844de70dbb26d2a9d317e8e204250e8&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=2&VideoBitrate=150268235&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=2591261be290463fa576aa2e8ba1fad3&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false {"Protocol":"File","Id":"8844de70dbb26d2a9d317e8e204250e8","Path":"/Users/guy/Movies/Organized/Bugs Life (1998) TS","Type":"Default","Name":"DVD/480P/MPEG2VIDEO/AC3","RunTimeTicks":56889000000,"ReadAtNativeFramerate":false,"SupportsTranscoding":true,"SupportsDirectStream":false,"SupportsDirectPlay":true,"RequiresOpening":false,"RequiresClosing":false,"VideoType":"Dvd","MediaStreams":[{"Codec":"mpeg2video","IsInterlaced":false,"BitRate":1975535432,"BitDepth":8,"RefFrames":1,"IsDefault":false,"IsForced":false,"Height":480,"Width":720,"AverageFrameRate":29.97003,"RealFrameRate":29.97003,"Profile":"Main","Type":"Video","AspectRatio":"4:3","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"PixelFormat":"yuv420p","Level":8,"IsAnamorphic":false},{"Codec":"ac3","IsInterlaced":false,"ChannelLayout":"5.1","BitRate":384000,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"Type":"Audio","Index":2,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0},{"Codec":"dvdsub","IsInterlaced":false,"IsDefault":false,"IsForced":false,"Type":"Subtitle","Index":3,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0}],"PlayableStreamFileNames":["VTS_01_1.VOB","VTS_01_2.VOB","VTS_01_3.VOB","VTS_01_4.VOB"],"Formats":[],"Bitrate":1975535432,"RequiredHttpHeaders":{}} /Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/ffmpeg/20150917/ffmpeg -probesize 1G -analyzeduration 200M -i concat:"/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_1.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_2.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_3.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_4.VOB" -map_metadata -1 -threads 0 -map 0:1 -map 0:2 -map -0:s -codec:v:0 libx264 -pix_fmt yuv420p -preset superfast -crf 23 -b:v 150268235 -maxrate 150268235 -bufsize 300536470 -vsync vfr -profile:v high -level 41 -force_key_frames "expr:gte(t,n_forced*3)" -vf "scale=trunc(oh*a/2)*2:min(ih\,1080)" -flags -global_header -sc_threshold 0 -codec:a:0 aac -strict experimental -ac 6 -ab 320000 -af "adelay=1,aresample=async=1" -hls_time 3 -start_number 0 -hls_list_size 0 -y "/Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/transcoding-temp/cef86fdb53ecff0394482074a76589da.m3u8" ffmpeg version N-75356-gf58e011-tessus Copyright (c) 2000-2015 the FFmpeg developers built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --as=yasm --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-version3 --disable-ffplay --disable-indev=qtkit --disable-indev=x11grab_xcb libavutil 55. 2.100 / 55. 2.100 libavcodec 57. 1.100 / 57. 1.100 libavformat 57. 0.100 / 57. 0.100 libavdevice 57. 0.100 / 57. 0.100 libavfilter 6. 1.100 / 6. 1.100 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.100 / 2. 0.100 libpostproc 54. 0.100 / 54. 0.100 Input #0, mpeg, from 'concat:/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_1.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_2.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_3.VOB|/Users/guy/Movies/Organized/Bugs Life (1998) TS/VTS_01_4.VOB': Duration: 00:00:17.04, start: 0.194500, bitrate: 1975535 kb/s Stream #0:0[0x1bf]: Data: dvd_nav_packet Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, smpte170m), 720x480 [SAR 8:9 DAR 4:3], Closed Captions, max. 9800 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Stream #0:2[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s Stream #0:3[0x20]: Subtitle: dvd_subtitle [libx264 @ 0x7f8b725d1000] using SAR=8/9 [libx264 @ 0x7f8b725d1000] VBV bitrate (150268) > level limit (62500) [libx264 @ 0x7f8b725d1000] VBV buffer (300536) > level limit (78125) [libx264 @ 0x7f8b725d1000] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 [libx264 @ 0x7f8b725d1000] profile High, level 4.1 Output #0, hls, to '/Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/transcoding-temp/cef86fdb53ecff0394482074a76589da.m3u8': Metadata: encoder : Lavf57.0.100 Stream #0:0: Video: h264 (libx264), yuv420p, 720x480 [SAR 8:9 DAR 4:3], q=-1--1, 150268 kb/s, 29.97 fps, 90k tbn, 29.97 tbc Metadata: encoder : Lavc57.1.100 libx264 Stream #0:1: Audio: aac, 48000 Hz, 5.1, fltp, 320 kb/s Metadata: encoder : Lavc57.1.100 aac Stream mapping: Stream #0:1 -> #0:0 (mpeg2video (native) -> h264 (libx264)) Stream #0:2 -> #0:1 (ac3 (native) -> aac (native)) Press [q] to stop, [?] for help frame= 119 fps=0.0 q=21.0 size=N/A time=00:00:04.59 bitrate=N/A frame= 223 fps=222 q=19.0 size=N/A time=00:00:08.88 bitrate=N/A frame= 320 fps=213 q=22.0 size=N/A time=00:00:13.14 bitrate=N/A frame= 442 fps=220 q=20.0 size=N/A time=00:00:17.81 bitrate=N/A frame= 568 fps=226 q=18.0 size=N/A time=00:00:23.06 bitrate=N/A frame= 686 fps=228 q=22.0 size=N/A time=00:00:28.33 bitrate=N/A frame= 778 fps=222 q=22.0 size=N/A time=00:00:32.11 bitrate=N/A frame= 886 fps=221 q=23.0 size=N/A time=00:00:36.65 bitrate=N/A frame= 971 fps=215 q=25.0 size=N/A time=00:00:40.17 bitrate=N/A frame= 1079 fps=215 q=24.0 size=N/A time=00:00:44.52 bitrate=N/A frame= 1173 fps=213 q=25.0 size=N/A time=00:00:48.62 bitrate=N/A frame= 1287 fps=214 q=24.0 size=N/A time=00:00:53.27 bitrate=N/A frame= 1393 fps=214 q=26.0 size=N/A time=00:00:57.77 bitrate=N/A frame= 1497 fps=213 q=22.0 size=N/A time=00:01:02.17 bitrate=N/A frame= 1591 fps=211 q=23.0 size=N/A time=00:01:06.07 bitrate=N/A frame= 1688 fps=210 q=27.0 size=N/A time=00:01:10.06 bitrate=N/A frame= 1776 fps=208 q=26.0 size=N/A time=00:01:13.69 bitrate=N/A frame= 1873 fps=208 q=25.0 size=N/A time=00:01:17.66 bitrate=N/A frame= 1976 fps=207 q=24.0 size=N/A time=00:01:21.90 bitrate=N/A frame= 2073 fps=207 q=26.0 size=N/A time=00:01:26.04 bitrate=N/A frame= 2173 fps=206 q=24.0 size=N/A time=00:01:30.26 bitrate=N/A frame= 2270 fps=206 q=25.0 size=N/A time=00:01:34.38 bitrate=N/A frame= 2364 fps=205 q=26.0 size=N/A time=00:01:38.28 bitrate=N/A frame= 2441 fps=203 q=25.0 size=N/A time=00:01:41.59 bitrate=N/A frame= 2523 fps=201 q=-1.0 Lsize=N/A time=00:01:45.13 bitrate=N/A video:15085kB audio:4130kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown [libx264 @ 0x7f8b725d1000] frame I:36 Avg QP:18.07 size: 33241 [libx264 @ 0x7f8b725d1000] frame P:949 Avg QP:20.23 size: 10578 [libx264 @ 0x7f8b725d1000] frame B:1538 Avg QP:22.54 size: 2738 [libx264 @ 0x7f8b725d1000] consecutive B-frames: 8.2% 27.3% 12.2% 52.2% [libx264 @ 0x7f8b725d1000] mb I I16..4: 26.5% 25.7% 47.8% [libx264 @ 0x7f8b725d1000] mb P I16..4: 12.6% 4.5% 1.8% P16..4: 55.1% 0.0% 0.0% 0.0% 0.0% skip:26.1% [libx264 @ 0x7f8b725d1000] mb B I16..4: 1.0% 0.2% 0.1% B16..8: 17.9% 0.0% 0.0% direct:14.8% skip:65.9% L0:25.2% L1:40.1% BI:34.7% [libx264 @ 0x7f8b725d1000] 8x8 transform intra:23.5% inter:49.5% [libx264 @ 0x7f8b725d1000] 8x8 transform intra:23.5% inter:49.5% and http://192.168.1.187:8096/emby/videos/9448276e179a0acf5bd52430e4fa1ad4/hls1/main/0.ts?DeviceId=93c8e3f186b48baae77a2a70d63ea0cbb44eb539&MediaSourceId=9448276e179a0acf5bd52430e4fa1ad4&VideoCodec=h264&AudioCodec=aac&VideoBitrate=119680000&AudioBitrate=320000&MaxAudioChannels=6&MaxHeight=1080&Level=41&Profile=high&PlaySessionId=4fecfcb2144941a09c496fdeaf9dd924&api_key=9f31a937259d4d968308befd0f27dc7f&EnableAutoStreamCopy=false {"Protocol":"File","Id":"9448276e179a0acf5bd52430e4fa1ad4","Path":"/Users/guy/Movies/Organized/Adaptation (2002) - 720x480 TS MPEG","Type":"Default","Name":"DVD","RunTimeTicks":68891330000,"ReadAtNativeFramerate":false,"SupportsTranscoding":true,"SupportsDirectStream":false,"SupportsDirectPlay":true,"RequiresOpening":false,"RequiresClosing":false,"VideoType":"Dvd","MediaStreams":[],"PlayableStreamFileNames":[],"Formats":[],"RequiredHttpHeaders":{}} /Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/ffmpeg/20150917/ffmpeg -i file:"/Users/guy/Movies/Organized/Adaptation (2002) - 720x480 TS MPEG" -map_metadata -1 -threads 0 -sn -codec:v:0 libx264 -pix_fmt yuv420p -preset superfast -crf 23 -b:v 119680000 -maxrate 119680000 -bufsize 239360000 -vsync vfr -profile:v high -level 41 -force_key_frames "expr:gte(t,n_forced*3)" -vf "scale=trunc(oh*a/2)*2:min(ih\,1080)" -flags -global_header -sc_threshold 0 -codec:a:0 aac -strict experimental -ac 6 -ab 320000 -af "adelay=1,aresample=async=1" -hls_time 3 -start_number 0 -hls_list_size 0 -y "/Users/guy/mediabrowser/MediaBrowser/MediaBrowser.Server.Mono/bin/Release Mono/ProgramData-Server/transcoding-temp/7349279b4e7f01728021a3cf1bf02ff0.m3u8" ffmpeg version N-75356-gf58e011-tessus Copyright (c) 2000-2015 the FFmpeg developers built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --as=yasm --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-version3 --disable-ffplay --disable-indev=qtkit --disable-indev=x11grab_xcb libavutil 55. 2.100 / 55. 2.100 libavcodec 57. 1.100 / 57. 1.100 libavformat 57. 0.100 / 57. 0.100 libavdevice 57. 0.100 / 57. 0.100 libavfilter 6. 1.100 / 6. 1.100 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.100 / 2. 0.100 libpostproc 54. 0.100 / 54. 0.100 file:/Users/guy/Movies/Organized/Adaptation (2002) - 720x480 TS MPEG: Is a directory So, I latched on to PlayableStreamFileNames as correctly determined in the movie > vobs structure and incorrectly in the movie > videots > vobs structure. As far as I can work out, this list is generated in Emby-Master > MediaBrowser.Controller > Entities > Video.cs line 310 /// <summary> /// Gets the playable stream files. /// </summary> /// <param name="rootPath">The root path.</param> /// <returns>List{System.String}.</returns> public List<string> GetPlayableStreamFiles(string rootPath) { var allFiles = FileSystem.GetFilePaths(rootPath, true).ToList(); return PlayableStreamFileNames.Select(name => allFiles.FirstOrDefault(f => string.Equals(System.IO.Path.GetFileName(f), name, StringComparison.OrdinalIgnoreCase))) .Where(f => !string.IsNullOrEmpty(f)) .ToList(); } However, when I modify this, build and run emby, nothing seems to change. If I code a compile error here, the build fails, however, the method does not seem to come into play as I haven't been able to get a log out of here or change the PlayableStreamFileNames. This suggests to me that the action is happening somewhere else, and I am having difficulty finding it. Can you or anyone please point me to where I can go to change the creation of PlayableStreamFileNames so that it pulls from the VIDEO_TS folder when it is present? Thanks! Edited December 3, 2015 by adrik
Luke 38850 Posted December 3, 2015 Posted December 3, 2015 It's during the initial library scan, so you'll need to refresh the content to see changes. Here is the code https://github.com/MediaBrowser/Emby/blob/master/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs#L702 We use a library called DvdLib to try and figure out the main movie voblist. if that doesn't produce anything, we use our own little whipped up algorithm based on file sizes, which is equivalent to guessing and is one of the reasons we call it experimental. 1
adrik 1 Posted December 3, 2015 Author Posted December 3, 2015 (edited) Awesome! Thanks! Editing the FFProbeVideoInfo.cs you linked has done the trick. I added a check (line 709 below) to see if the movie's directory contains a VIDEO_TS folder, and if so to use that as root. Works great for both structures. Happy to submit it somewhere if that'd be useful and fit. private IEnumerable<string> GetPrimaryPlaylistVobFiles(Video video, IIsoMount isoMount, uint? titleNumber) { // min size 300 mb const long minPlayableSize = 314572800; //determine the root path to the VOB files var root = isoMount != null ? isoMount.MountedPath : video.Path; root = Directory.Exists(root+"/VIDEO_TS") ? root+"/VIDEO_TS" : root; ... Edited December 3, 2015 by adrik 1
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now