Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

47 řádky
1.6 KiB

  1. using JT1078.Protocol;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Text;
  6. using Xunit;
  7. using JT1078.Protocol.Extensions;
  8. namespace JT1078.Hls.Test
  9. {
  10. public class M3U8_Test
  11. {
  12. /// <summary>
  13. /// 生成m3u8索引文件
  14. /// </summary>
  15. [Fact]
  16. public void Test4()
  17. {
  18. try
  19. {
  20. var hls_file_directory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "H264", "terminalno");
  21. if (!File.Exists(hls_file_directory)) Directory.CreateDirectory(hls_file_directory);
  22. var m3u8_filename = Path.Combine(hls_file_directory, "live.m3u8");
  23. TSEncoder tSEncoder = new TSEncoder();
  24. var m3u8Manage = new M3U8FileManage(new Options.M3U8Option { HlsFileDirectory = hls_file_directory, M3U8FileName = m3u8_filename }, tSEncoder);
  25. var lines = File.ReadAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "H264", "JT1078_3.txt"));
  26. foreach (var line in lines)
  27. {
  28. var data = line.Split(',');
  29. var bytes = data[6].ToHexBytes();
  30. JT1078Package package = JT1078Serializer.Deserialize(bytes);
  31. JT1078Package fullpackage = JT1078Serializer.Merge(package);
  32. if (fullpackage != null)
  33. {
  34. m3u8Manage.CreateTsData(fullpackage);
  35. }
  36. }
  37. }
  38. catch (Exception ex)
  39. {
  40. //Assert.Throws<Exception>(() => { });
  41. }
  42. }
  43. }
  44. }