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); } }
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); } }
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; }