DeviceProfile-Firefox.json 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  1. {
  2. "EnableAlbumArtInDidl": false,
  3. "EnableSingleAlbumArtLimit": false,
  4. "EnableSingleSubtitleLimit": false,
  5. "SupportedMediaTypes": "Audio,Photo,Video",
  6. "MaxAlbumArtWidth": 0,
  7. "MaxAlbumArtHeight": 0,
  8. "MaxStreamingBitrate": 120000000,
  9. "MaxStaticBitrate": 100000000,
  10. "MusicStreamingTranscodingBitrate": 384000,
  11. "TimelineOffsetSeconds": 0,
  12. "RequiresPlainVideoItems": false,
  13. "RequiresPlainFolders": false,
  14. "EnableMSMediaReceiverRegistrar": false,
  15. "IgnoreTranscodeByteRangeRequests": false,
  16. "DirectPlayProfiles": [
  17. {
  18. "AudioCodec": "vorbis,opus",
  19. "Container": "webm",
  20. "Type": "Video",
  21. "VideoCodec": "vp8,vp9,av1"
  22. },
  23. {
  24. "AudioCodec": "aac,mp3,mp2,opus,flac,vorbis",
  25. "Container": "mp4,m4v",
  26. "Type": "Video",
  27. "VideoCodec": "h264,vp9,av1"
  28. },
  29. {
  30. "Container": "opus",
  31. "Type": "Audio"
  32. },
  33. {
  34. "AudioCodec": "opus",
  35. "Container": "webm",
  36. "Type": "Audio"
  37. },
  38. {
  39. "AudioCodec": "mp3",
  40. "Container": "ts",
  41. "Type": "Audio"
  42. },
  43. {
  44. "Container": "mp3",
  45. "Type": "Audio"
  46. },
  47. {
  48. "Container": "aac",
  49. "Type": "Audio"
  50. },
  51. {
  52. "AudioCodec": "aac",
  53. "Container": "m4a",
  54. "Type": "Audio"
  55. },
  56. {
  57. "AudioCodec": "aac",
  58. "Container": "m4b",
  59. "Type": "Audio"
  60. },
  61. {
  62. "Container": "flac",
  63. "Type": "Audio"
  64. },
  65. {
  66. "Container": "webma",
  67. "Type": "Audio"
  68. },
  69. {
  70. "AudioCodec": "webma",
  71. "Container": "webm",
  72. "Type": "Audio"
  73. },
  74. {
  75. "Container": "wav",
  76. "Type": "Audio"
  77. },
  78. {
  79. "Container": "ogg",
  80. "Type": "Audio"
  81. },
  82. {
  83. "AudioCodec": "aac,mp2,opus,flac",
  84. "Container": "hls",
  85. "Type": "Video",
  86. "VideoCodec": "av1,h264,vp9"
  87. },
  88. {
  89. "AudioCodec": "aac,mp3,mp2",
  90. "Container": "hls",
  91. "Type": "Video",
  92. "VideoCodec": "h264"
  93. }
  94. ],
  95. "TranscodingProfiles": [
  96. {
  97. "AudioCodec": "aac",
  98. "BreakOnNonKeyFrames": true,
  99. "Container": "mp4",
  100. "Context": "Streaming",
  101. "EnableAudioVbrEncoding": true,
  102. "MaxAudioChannels": "2",
  103. "MinSegments": "2",
  104. "Protocol": "hls",
  105. "Type": "Audio"
  106. },
  107. {
  108. "AudioCodec": "aac",
  109. "Container": "aac",
  110. "Context": "Streaming",
  111. "MaxAudioChannels": "2",
  112. "Protocol": "http",
  113. "Type": "Audio"
  114. },
  115. {
  116. "AudioCodec": "mp3",
  117. "Container": "mp3",
  118. "Context": "Streaming",
  119. "MaxAudioChannels": "2",
  120. "Protocol": "http",
  121. "Type": "Audio"
  122. },
  123. {
  124. "AudioCodec": "opus",
  125. "Container": "opus",
  126. "Context": "Streaming",
  127. "MaxAudioChannels": "2",
  128. "Protocol": "http",
  129. "Type": "Audio"
  130. },
  131. {
  132. "AudioCodec": "wav",
  133. "Container": "wav",
  134. "Context": "Streaming",
  135. "MaxAudioChannels": "2",
  136. "Protocol": "http",
  137. "Type": "Audio"
  138. },
  139. {
  140. "AudioCodec": "opus",
  141. "Container": "opus",
  142. "Context": "Static",
  143. "MaxAudioChannels": "2",
  144. "Protocol": "http",
  145. "Type": "Audio"
  146. },
  147. {
  148. "AudioCodec": "mp3",
  149. "Container": "mp3",
  150. "Context": "Static",
  151. "MaxAudioChannels": "2",
  152. "Protocol": "http",
  153. "Type": "Audio"
  154. },
  155. {
  156. "AudioCodec": "aac",
  157. "Container": "aac",
  158. "Context": "Static",
  159. "MaxAudioChannels": "2",
  160. "Protocol": "http",
  161. "Type": "Audio"
  162. },
  163. {
  164. "AudioCodec": "wav",
  165. "Container": "wav",
  166. "Context": "Static",
  167. "MaxAudioChannels": "2",
  168. "Protocol": "http",
  169. "Type": "Audio"
  170. },
  171. {
  172. "AudioCodec": "aac,mp2,opus,flac",
  173. "BreakOnNonKeyFrames": true,
  174. "Container": "mp4",
  175. "Context": "Streaming",
  176. "MaxAudioChannels": "2",
  177. "MinSegments": "2",
  178. "Protocol": "hls",
  179. "Type": "Video",
  180. "VideoCodec": "av1,h264,vp9"
  181. },
  182. {
  183. "AudioCodec": "aac,mp3,mp2",
  184. "BreakOnNonKeyFrames": true,
  185. "Container": "ts",
  186. "Context": "Streaming",
  187. "MaxAudioChannels": "2",
  188. "MinSegments": "2",
  189. "Protocol": "hls",
  190. "Type": "Video",
  191. "VideoCodec": "h264"
  192. }
  193. ],
  194. "CodecProfiles": [
  195. {
  196. "Codec": "aac",
  197. "Conditions": [
  198. {
  199. "Condition": "Equals",
  200. "IsRequired": false,
  201. "Property": "IsSecondaryAudio",
  202. "Value": "false"
  203. }
  204. ],
  205. "Type": "VideoAudio"
  206. },
  207. {
  208. "Conditions": [
  209. {
  210. "Condition": "LessThanEqual",
  211. "IsRequired": false,
  212. "Property": "AudioChannels",
  213. "Value": "2"
  214. }
  215. ],
  216. "Type": "Audio"
  217. },
  218. {
  219. "Conditions": [
  220. {
  221. "Condition": "LessThanEqual",
  222. "IsRequired": false,
  223. "Property": "AudioChannels",
  224. "Value": "2"
  225. },
  226. {
  227. "Condition": "Equals",
  228. "IsRequired": false,
  229. "Property": "IsSecondaryAudio",
  230. "Value": "false"
  231. }
  232. ],
  233. "Type": "VideoAudio"
  234. },
  235. {
  236. "Codec": "h264",
  237. "Conditions": [
  238. {
  239. "Condition": "NotEquals",
  240. "IsRequired": false,
  241. "Property": "IsAnamorphic",
  242. "Value": "true"
  243. },
  244. {
  245. "Condition": "EqualsAny",
  246. "IsRequired": false,
  247. "Property": "VideoProfile",
  248. "Value": "high|main|baseline|constrained baseline"
  249. },
  250. {
  251. "Condition": "EqualsAny",
  252. "IsRequired": false,
  253. "Property": "VideoRangeType",
  254. "Value": "SDR"
  255. },
  256. {
  257. "Condition": "LessThanEqual",
  258. "IsRequired": false,
  259. "Property": "VideoLevel",
  260. "Value": "52"
  261. },
  262. {
  263. "Condition": "NotEquals",
  264. "IsRequired": false,
  265. "Property": "IsInterlaced",
  266. "Value": "true"
  267. }
  268. ],
  269. "Type": "Video"
  270. },
  271. {
  272. "Codec": "hevc",
  273. "Conditions": [
  274. {
  275. "Condition": "NotEquals",
  276. "IsRequired": false,
  277. "Property": "IsAnamorphic",
  278. "Value": "true"
  279. },
  280. {
  281. "Condition": "EqualsAny",
  282. "IsRequired": false,
  283. "Property": "VideoProfile",
  284. "Value": "main"
  285. },
  286. {
  287. "Condition": "EqualsAny",
  288. "IsRequired": false,
  289. "Property": "VideoRangeType",
  290. "Value": "SDR"
  291. },
  292. {
  293. "Condition": "LessThanEqual",
  294. "IsRequired": false,
  295. "Property": "VideoLevel",
  296. "Value": "120"
  297. },
  298. {
  299. "Condition": "NotEquals",
  300. "IsRequired": false,
  301. "Property": "IsInterlaced",
  302. "Value": "true"
  303. }
  304. ],
  305. "Type": "Video"
  306. },
  307. {
  308. "Codec": "vp9",
  309. "Conditions": [
  310. {
  311. "Condition": "EqualsAny",
  312. "IsRequired": false,
  313. "Property": "VideoRangeType",
  314. "Value": "SDR"
  315. }
  316. ],
  317. "Type": "Video"
  318. },
  319. {
  320. "Codec": "av1",
  321. "Conditions": [
  322. {
  323. "Condition": "NotEquals",
  324. "IsRequired": false,
  325. "Property": "IsAnamorphic",
  326. "Value": "true"
  327. },
  328. {
  329. "Condition": "EqualsAny",
  330. "IsRequired": false,
  331. "Property": "VideoProfile",
  332. "Value": "main"
  333. },
  334. {
  335. "Condition": "EqualsAny",
  336. "IsRequired": false,
  337. "Property": "VideoRangeType",
  338. "Value": "SDR"
  339. },
  340. {
  341. "Condition": "LessThanEqual",
  342. "IsRequired": false,
  343. "Property": "VideoLevel",
  344. "Value": "19"
  345. }
  346. ],
  347. "Type": "Video"
  348. }
  349. ],
  350. "ResponseProfiles": [
  351. {
  352. "Container": "m4v",
  353. "MimeType": "video/mp4",
  354. "Type": "Video"
  355. }
  356. ],
  357. "SubtitleProfiles": [
  358. {
  359. "Format": "vtt",
  360. "Method": "External"
  361. },
  362. {
  363. "Format": "ass",
  364. "Method": "External"
  365. },
  366. {
  367. "Format": "ssa",
  368. "Method": "External"
  369. }
  370. ],
  371. "$type": "DeviceProfile"
  372. }