示例#1
0
        public static void ExtractSnaphots(Settings settings, String path, List <Tuple <CardInfo, String> > allEntries, InfoProgress progress)
        {
            foreach (var entry in allEntries)
            {
                if (progress.Cancelled)
                {
                    break;
                }
                progress.ProcessedSteps(1);

                var cardInfoNameTuple = entry;
                var cardInfo          = cardInfoNameTuple.Item1;
                if (!cardInfo.HasImage())
                {
                    continue;
                }

                // create file at given path
                String outputSnapshotFilename = cardInfoNameTuple.Item2;
                String outputSnapshotFilepath = path + Path.DirectorySeparatorChar + outputSnapshotFilename;

                // get file with snapshot information -> video
                UtilsInputFiles.FileDesc videoFileDesc = cardInfo.episodeInfo.VideoFileDesc;

                // extract image
                double scaling   = UtilsVideo.GetMaxScalingByStreamInfo(cardInfo.episodeInfo.VideoStreamInfo, settings.RescaleWidth, settings.RescaleHeight, settings.RescaleMode);
                double timeStamp = UtilsCommon.GetMiddleTime(cardInfo);
                UtilsImage.GetImage(videoFileDesc.filename, timeStamp, outputSnapshotFilepath, scaling);
            }
        }
示例#2
0
        public static void ExtractAudio(Settings settings, String path, List <Tuple <CardInfo, String> > allEntries, InfoProgress progress)
        {
            foreach (var entry in allEntries)
            {
                progress.ProcessedSteps(1);
                if (progress.Cancelled)
                {
                    return;
                }

                CardInfo cardInfo = entry.Item1;
                if (!cardInfo.HasAudio())
                {
                    continue;
                }

                String outputAudioFilename = entry.Item2;
                String outputAudioFilepath = path + Path.DirectorySeparatorChar + outputAudioFilename;

                UtilsInputFiles.FileDesc audioFileDesc = cardInfo.episodeInfo.AudioFileDesc;
                var audioStreamInfo = cardInfo.episodeInfo.AudioStreamInfo;

                String arguments = String.Format("-v quiet -y -i \"{0}\" -map 0:{1} -ss \"{2}\" -to \"{3}\" -vn -c:a libvorbis \"{4}\"",
                                                 audioFileDesc.filename,                              // input file
                                                 audioStreamInfo.StreamIndex,                         // audio stream index
                                                 UtilsCommon.ToTimeArg(cardInfo.audioStartTimestamp), // start time
                                                 UtilsCommon.ToTimeArg(cardInfo.audioEndTimestamp),   // end time
                                                 outputAudioFilepath                                  // output file
                                                 );
                UtilsCommon.StartProcessAndGetOutput(InstanceSettings.systemSettings.formatConvertCommand, arguments);
            }
        }
示例#3
0
 public EpisodeInfo(int index,
                    int number,
                    UtilsInputFiles.FileDesc videoFileDesc,
                    UtilsInputFiles.FileDesc audioFileDesc,
                    UtilsInputFiles.FileDesc sub1FileDesc,
                    UtilsInputFiles.FileDesc sub2FileDesc,
                    StreamInfo videoStreamInfo,
                    StreamInfo audioStreamInfo,
                    StreamInfo sub1StreamInfo,
                    StreamInfo sub2StreamInfo)
 {
     m_index             = index;
     m_number            = number;
     m_videoFileDesc     = videoFileDesc;
     m_audioFileDesc     = audioFileDesc;
     m_subsFileDesc[0]   = sub1FileDesc;
     m_subsFileDesc[1]   = sub2FileDesc;
     m_videoStreamInfo   = videoStreamInfo;
     m_audioStreamInfo   = audioStreamInfo;
     m_subStreamInfos[0] = sub1StreamInfo;
     m_subStreamInfos[1] = sub2StreamInfo;
 }
		public EpisodeInfo (int index,
				int number,
				UtilsInputFiles.FileDesc videoFileDesc,
				UtilsInputFiles.FileDesc audioFileDesc,
				UtilsInputFiles.FileDesc sub1FileDesc,
				UtilsInputFiles.FileDesc sub2FileDesc,
				StreamInfo videoStreamInfo,
				StreamInfo audioStreamInfo,
				StreamInfo sub1StreamInfo,
				StreamInfo sub2StreamInfo)
		{
			m_index = index;
			m_number = number;
			m_videoFileDesc = videoFileDesc;
			m_audioFileDesc = audioFileDesc;
			m_subsFileDesc[0] = sub1FileDesc;
			m_subsFileDesc[1] = sub2FileDesc;
			m_videoStreamInfo = videoStreamInfo;
			m_audioStreamInfo = audioStreamInfo;
			m_subStreamInfos[0] = sub1StreamInfo;
			m_subStreamInfos[1] = sub2StreamInfo;
		}
#pragma warning restore 0414, 0169

		public UtilsAlignSubToAudio(List<LineInfo> lines, UtilsInputFiles.FileDesc audioFile) {
			// TODO: implement align sub to audio 
			m_audioFileDesc = audioFile;
		}