Jump to content

still some VIDEO_TS folder issues, after searching


adrik

Recommended Posts

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

post-92027-0-96795200-1448842001_thumb.png

post-92027-0-15281400-1448842014_thumb.png

Edited by adrik
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

 

post-92027-0-76931700-1448855075_thumb.png

post-92027-0-25195700-1448855087_thumb.png

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 by adrik
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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 by adrik
  • Like 1
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...