Add video res to ffmpeg info

This commit is contained in:
Nikolaj Olsson 2024-04-28 19:09:20 +02:00
parent 0c28e8a0ec
commit 6a3ddce7dd

View File

@ -4,12 +4,17 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace Nikse.SubtitleEdit.Core.Common
{
public class FfmpegMediaInfo
{
public List<FfmpegTrackInfo> Tracks { get; set; }
public int VideoWidth { get; set; }
public int VideoHeight { get; set; }
private static readonly Regex ResolutionRegex = new Regex(@"\d\d+x\d\d+", RegexOptions.Compiled);
private FfmpegMediaInfo()
{
@ -19,7 +24,7 @@ namespace Nikse.SubtitleEdit.Core.Common
public static FfmpegMediaInfo Parse(string videoFileName)
{
if (string.IsNullOrEmpty(Configuration.Settings.General.FFmpegLocation) ||
!File.Exists(Configuration.Settings.General.FFmpegLocation))
!File.Exists(Configuration.Settings.General.FFmpegLocation))
{
return new FfmpegMediaInfo();
}
@ -56,6 +61,20 @@ namespace Nikse.SubtitleEdit.Core.Common
var s = line.Trim();
if (s.StartsWith("Stream #", StringComparison.Ordinal))
{
var resolutionMatch = ResolutionRegex.Match(s);
if (resolutionMatch.Success)
{
var parts = resolutionMatch.Value.Split('x');
if (info.VideoWidth == 0 &&
parts.Length == 2 &&
int.TryParse(parts[0], out var w) &&
int.TryParse(parts[0], out var h))
{
info.VideoWidth = w;
info.VideoHeight = h;
}
}
var arr = s.Replace(": ", "¤").Split('¤');
if (arr.Length == 3)
{
@ -123,7 +142,7 @@ namespace Nikse.SubtitleEdit.Core.Common
StartInfo =
{
FileName = ffmpegLocation,
Arguments = $"-i \"{inputFileName}\" - hide_banner",
Arguments = $"-i \"{inputFileName}\" -hide_banner",
UseShellExecute = false,
CreateNoWindow = true
}