示例#1
0
        private void MediaAttachmentListAddEmbed(string path)
        {
            var fileData = new FFmpeg.MediaInfo(path);

            foreach (ListViewItem lst in lstFile.SelectedItems)
            {
                foreach (var item in fileData.Attachment)
                {
                    (lst.Tag as MediaQueue).Attachment.Add(MediaQueueParse.Attachment(path, item));
                }
            }
        }
示例#2
0
        private void MediaSubtitleListAddEmbed(string path)
        {
            var fileData = new FFmpeg.MediaInfo(path);

            foreach (ListViewItem lst in lstFile.SelectedItems)
            {
                foreach (var item in fileData.Subtitle)
                {
                    (lst.Tag as MediaQueue).Subtitle.Add(MediaQueueParse.Subtitle(path, item));
                }
            }

            MediaShowReList();
        }
示例#3
0
        private void MediaFileListAdd(string path)
        {
            var fileData  = new FFmpeg.MediaInfo(path);
            var fileQueue = new MediaQueue()
            {
                Enable       = true,
                FilePath     = path,
                FileSize     = fileData.FileSize,
                Duration     = fileData.Duration,
                InputFormat  = fileData.FormatNameFull,
                OutputFormat = MediaContainer.MKV,
                Info         = fileData
            };

            foreach (var item in fileData.Video)
            {
                fileQueue.Video.Add(MediaQueueParse.Video(path, item));
            }

            foreach (var item in fileData.Audio)
            {
                fileQueue.Audio.Add(MediaQueueParse.Audio(path, item));
            }

            foreach (var item in fileData.Subtitle)
            {
                fileQueue.Subtitle.Add(MediaQueueParse.Subtitle(path, item));
            }

            foreach (var item in fileData.Attachment)
            {
                fileQueue.Attachment.Add(MediaQueueParse.Attachment(path, item));
            }

            lstFile.Items.Add(new ListViewItem(new[]
            {
                Path.GetFileName(path),
                Path.GetExtension(path).Substring(1).ToUpperInvariant(),
                TimeSpan.FromSeconds(fileData.Duration).ToString("hh\\:mm\\:ss"),
                OS.PrintFileSize(fileData.FileSize),
                fileQueue.Enable ? "Ready" : "Done",
                ""
            })
            {
                Tag      = fileQueue,
                Checked  = true,
                Selected = true
            });
        }
示例#4
0
        public static string Print(MediaInfo value)
        {
            var info = $"General{Environment.NewLine}" +
                       $"Complete name               : {value.FilePath}{Environment.NewLine}" +
                       $"Format                      : {value.FormatName} ({value.FormatNameFull}){Environment.NewLine}" +
                       $"File size                   : {value.FileSize} bytes{Environment.NewLine}" +
                       $"Duration                    : {value.Duration} seconds{Environment.NewLine}" +
                       $"Overall bit rate            : {value.BitRate} bps{Environment.NewLine}";

            var v     = 0;
            var video = string.Empty;

            foreach (var item in value.Video)
            {
                video += $"{Environment.NewLine}Video #{v++}{Environment.NewLine}" +
                         $"ID                          : {item.Id}{Environment.NewLine}" +
                         $"Format                      : {item.Codec}{Environment.NewLine}" +
                         $"Width                       : {item.Width}{Environment.NewLine}" +
                         $"Height                      : {item.Height}{Environment.NewLine}" +
                         $"Frame rate mode             : {(item.FrameRateConstant ? "Constant" : "Variable")}{Environment.NewLine}" +
                         $"Frame rate                  : {item.FrameRate} FPS ({item.FrameRateAvg} FPS){Environment.NewLine}" +
                         $"Chroma subsampling          : {item.Chroma}{Environment.NewLine}" +
                         $"Bit depth                   : {item.BitDepth} bits{Environment.NewLine}" +
                         $"Language                    : {item.Language}{Environment.NewLine}";
            }

            var a     = 0;
            var audio = string.Empty;

            foreach (var item in value.Audio)
            {
                audio += $"{Environment.NewLine}Audio #{a++}{Environment.NewLine}" +
                         $"ID                          : {item.Id}{Environment.NewLine}" +
                         $"Format                      : {item.Codec}{Environment.NewLine}" +
                         $"Channel(s)                  : {item.Channel}{Environment.NewLine}" +
                         $"Sampling rate               : {item.SampleRate} Hz{Environment.NewLine}" +
                         $"Bit Depth                   : {item.BitDepth} bits{Environment.NewLine}" +
                         $"Language                    : {item.Language}{Environment.NewLine}";
            }

            var s        = 0;
            var subtitle = string.Empty;

            foreach (var item in value.Subtitle)
            {
                subtitle += $"{Environment.NewLine}Subtitles #{s++}{Environment.NewLine}" +
                            $"ID                          : {item.Id}{Environment.NewLine}" +
                            $"Format                      : {item.Codec}{Environment.NewLine}" +
                            $"Language                    : {item.Language}{Environment.NewLine}";
            }

            var t      = 0;
            var attach = string.Empty;

            foreach (var item in value.Attachment)
            {
                attach += $"{Environment.NewLine}Attachments #{t++}{Environment.NewLine}" +
                          $"ID                          : {item.Id}{Environment.NewLine}" +
                          $"Name                        : {item.FileName}{Environment.NewLine}" +
                          $"MIME                        : {item.MimeType}{Environment.NewLine}";
            }

            return(info + video + audio + subtitle + attach);
        }