FastMediaInfo

package module
v0.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2024 License: Apache-2.0 Imports: 2 Imported by: 4

README

FastMediaInfo

统一的mediainfo解析方法

Quick start

func TestGetPrettyInfo(t *testing.T) {
	result := GetStandMediaInfo("/mnt/e/Movies/bili/杰克威胁taiga/被困循环中的不止2B还有她尼尔短篇小说过于平静的海洋解说.mkv")
	pretty.P(result.General)
	pretty.P(result.Audio)
	pretty.P(result.Video)

}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetCRF added in v0.0.2

func GetCRF(codec string, width, height int) (crf string)

codec 可选 h265 vp9 av1 avif

Types

type Audio

type Audio struct {
	Type                 string `json:"@type"`
	Count                string `json:"Count"`
	StreamCount          string `json:"StreamCount"`
	StreamKind           string `json:"StreamKind"`
	StreamKindString     string `json:"StreamKind_String"`
	StreamKindID         string `json:"StreamKindID"`
	Format               string `json:"Format"`
	FormatString         string `json:"Format_String"`
	FormatCommercial     string `json:"Format_Commercial"`
	CodecID              string `json:"CodecID"`
	Duration             string `json:"Duration"`
	DurationString       string `json:"Duration_String"`
	DurationString1      string `json:"Duration_String1"`
	DurationString2      string `json:"Duration_String2"`
	DurationString3      string `json:"Duration_String3"`
	DurationString5      string `json:"Duration_String5"`
	FrameRate            string `json:"FrameRate"`
	FrameRateString      string `json:"FrameRate_String"`
	FrameCount           string `json:"FrameCount"`
	StreamSize           string `json:"StreamSize"`
	StreamSizeString     string `json:"StreamSize_String"`
	StreamSizeString1    string `json:"StreamSize_String1"`
	StreamSizeString2    string `json:"StreamSize_String2"`
	StreamSizeString3    string `json:"StreamSize_String3"`
	StreamSizeString4    string `json:"StreamSize_String4"`
	StreamSizeString5    string `json:"StreamSize_String5"`
	StreamSizeProportion string `json:"StreamSize_Proportion"`
	StreamOrder          string `json:"StreamOrder"`
	ID                   string `json:"ID"`
	IDString             string `json:"ID_String"`
	FormatInfo           string `json:"Format_Info"`
	Extra                struct {
		SourceDelay           string `json:"Source_Delay"`
		SourceDelaySource     string `json:"Source_Delay_Source"`
		CodecConfigurationBox string `json:"CodecConfigurationBox"`
	} `json:"extra"`
	FormatAdditionalFeatures string `json:"Format_AdditionalFeatures"`
	Channels                 string `json:"Channels"`
	ChannelsString           string `json:"Channels_String"`
	ChannelPositions         string `json:"ChannelPositions"`
	ChannelPositionsString2  string `json:"ChannelPositions_String2"`
	ChannelLayout            string `json:"ChannelLayout"`
	SamplesPerFrame          string `json:"SamplesPerFrame"`
	SamplingRate             string `json:"SamplingRate"`
	SamplingRateString       string `json:"SamplingRate_String"`
	SamplingCount            string `json:"SamplingCount"`
	CompressionMode          string `json:"Compression_Mode"`
	CompressionModeString    string `json:"Compression_Mode_String"`
	Default                  string `json:"Default"`
	DefaultString            string `json:"Default_String"`
}

type General

type General struct {
	Type                     string `json:"@type"`
	Count                    string `json:"Count"`
	StreamCount              string `json:"StreamCount"`
	StreamKind               string `json:"StreamKind"`
	StreamKindString         string `json:"StreamKind_String"`
	StreamKindID             string `json:"StreamKindID"`
	VideoCount               string `json:"VideoCount"`
	AudioCount               string `json:"AudioCount"`
	VideoFormatList          string `json:"Video_Format_List"`
	VideoFormatWithHintList  string `json:"Video_Format_WithHint_List"`
	VideoCodecList           string `json:"Video_Codec_List"`
	AudioFormatList          string `json:"Audio_Format_List"`
	AudioFormatWithHintList  string `json:"Audio_Format_WithHint_List"`
	AudioCodecList           string `json:"Audio_Codec_List"`
	CompleteName             string `json:"CompleteName"`
	FolderName               string `json:"FolderName"`
	FileNameExtension        string `json:"FileNameExtension"`
	FileName                 string `json:"FileName"`
	FileExtension            string `json:"FileExtension"`
	Format                   string `json:"Format"`
	FormatString             string `json:"Format_String"`
	FormatExtensions         string `json:"Format_Extensions"`
	FormatCommercial         string `json:"Format_Commercial"`
	CodecID                  string `json:"CodecID"`
	FileSize                 string `json:"FileSize"`
	FileSizeString           string `json:"FileSize_String"`
	FileSizeString1          string `json:"FileSize_String1"`
	FileSizeString2          string `json:"FileSize_String2"`
	FileSizeString3          string `json:"FileSize_String3"`
	FileSizeString4          string `json:"FileSize_String4"`
	Duration                 string `json:"Duration"`
	DurationString           string `json:"Duration_String"`
	DurationString1          string `json:"Duration_String1"`
	DurationString2          string `json:"Duration_String2"`
	DurationString3          string `json:"Duration_String3"`
	DurationString4          string `json:"Duration_String4"`
	DurationString5          string `json:"Duration_String5"`
	OverallBitRate           string `json:"OverallBitRate"`
	OverallBitRateString     string `json:"OverallBitRate_String"`
	FrameRate                string `json:"FrameRate"`
	FrameRateString          string `json:"FrameRate_String"`
	FrameCount               string `json:"FrameCount"`
	StreamSize               string `json:"StreamSize"`
	StreamSizeString         string `json:"StreamSize_String"`
	StreamSizeString1        string `json:"StreamSize_String1"`
	StreamSizeString2        string `json:"StreamSize_String2"`
	StreamSizeString3        string `json:"StreamSize_String3"`
	StreamSizeString4        string `json:"StreamSize_String4"`
	StreamSizeString5        string `json:"StreamSize_String5"`
	StreamSizeProportion     string `json:"StreamSize_Proportion"`
	IsStreamable             string `json:"IsStreamable"`
	FileModifiedDate         string `json:"File_Modified_Date"`
	FileModifiedDateLocal    string `json:"File_Modified_Date_Local"`
	EncodedApplication       string `json:"Encoded_Application"`
	EncodedApplicationString string `json:"Encoded_Application_String"`
	FormatUrl                string `json:"Format_Url"`
	EncodedLibrary           string `json:"Encoded_Library"`
	EncodedLibraryString     string `json:"Encoded_Library_String"`
	Extra                    struct {
		SourceDelay           string `json:"Source_Delay"`
		SourceDelaySource     string `json:"Source_Delay_Source"`
		CodecConfigurationBox string `json:"CodecConfigurationBox"`
	} `json:"extra"`
}

type Image added in v0.0.4

type Image struct {
	Type                  string `json:"@type"`
	Count                 string `json:"Count"`
	StreamCount           string `json:"StreamCount"`
	StreamKind            string `json:"StreamKind"`
	StreamKindString      string `json:"StreamKind_String"`
	StreamKindID          string `json:"StreamKindID"`
	Format                string `json:"Format"`
	FormatString          string `json:"Format_String"`
	FormatInfo            string `json:"Format_Info"`
	FormatCommercial      string `json:"Format_Commercial"`
	FormatCompression     string `json:"Format_Compression"`
	InternetMediaType     string `json:"InternetMediaType"`
	Width                 string `json:"Width"`
	WidthString           string `json:"Width_String"`
	Height                string `json:"Height"`
	HeightString          string `json:"Height_String"`
	ColorSpace            string `json:"ColorSpace"`
	BitDepth              string `json:"BitDepth"`
	BitDepthString        string `json:"BitDepth_String"`
	CompressionMode       string `json:"Compression_Mode"`
	CompressionModeString string `json:"Compression_Mode_String"`
	StreamSize            string `json:"StreamSize"`
	StreamSizeString      string `json:"StreamSize_String"`
	StreamSizeString1     string `json:"StreamSize_String1"`
	StreamSizeString2     string `json:"StreamSize_String2"`
	StreamSizeString3     string `json:"StreamSize_String3"`
	StreamSizeString4     string `json:"StreamSize_String4"`
	StreamSizeString5     string `json:"StreamSize_String5"`
	StreamSizeProportion  string `json:"StreamSize_Proportion"`
}

type PrettyInfo

type PrettyInfo struct {
	Video   Video
	Audio   Audio
	Image   Image
	General General
}

func GetStandMediaInfo

func GetStandMediaInfo(fp string) *PrettyInfo

type Stand

type Stand struct {
	CreatingLibrary struct {
		Name    string `json:"name"`
		Version string `json:"version"`
		Url     string `json:"url"`
	} `json:"creatingLibrary"`
	Media struct {
		Ref   string `json:"@ref"`
		Track []struct {
			Type                           string `json:"@type"`
			Count                          string `json:"Count"`
			StreamCount                    string `json:"StreamCount"`
			StreamKind                     string `json:"StreamKind"`
			StreamKindString               string `json:"StreamKind_String"`
			StreamKindID                   string `json:"StreamKindID"`
			VideoCount                     string `json:"VideoCount,omitempty"`
			AudioCount                     string `json:"AudioCount,omitempty"`
			VideoFormatList                string `json:"Video_Format_List,omitempty"`
			VideoFormatWithHintList        string `json:"Video_Format_WithHint_List,omitempty"`
			VideoCodecList                 string `json:"Video_Codec_List,omitempty"`
			AudioFormatList                string `json:"Audio_Format_List,omitempty"`
			AudioFormatWithHintList        string `json:"Audio_Format_WithHint_List,omitempty"`
			AudioCodecList                 string `json:"Audio_Codec_List,omitempty"`
			CompleteName                   string `json:"CompleteName,omitempty"`
			FolderName                     string `json:"FolderName,omitempty"`
			FileNameExtension              string `json:"FileNameExtension,omitempty"`
			FileName                       string `json:"FileName,omitempty"`
			FileExtension                  string `json:"FileExtension,omitempty"`
			FormatCompression              string `json:"Format_Compression,omitempty"`
			Format                         string `json:"Format"`
			FormatString                   string `json:"Format_String"`
			FormatExtensions               string `json:"Format_Extensions,omitempty"`
			FormatCommercial               string `json:"Format_Commercial"`
			FormatProfile                  string `json:"Format_Profile,omitempty"`
			InternetMediaType              string `json:"InternetMediaType,omitempty"`
			CodecID                        string `json:"CodecID"`
			CodecIDString                  string `json:"CodecID_String,omitempty"`
			CodecIDUrl                     string `json:"CodecID_Url,omitempty"`
			CodecIDCompatible              string `json:"CodecID_Compatible,omitempty"`
			FileSize                       string `json:"FileSize,omitempty"`
			FileSizeString                 string `json:"FileSize_String,omitempty"`
			FileSizeString1                string `json:"FileSize_String1,omitempty"`
			FileSizeString2                string `json:"FileSize_String2,omitempty"`
			FileSizeString3                string `json:"FileSize_String3,omitempty"`
			FileSizeString4                string `json:"FileSize_String4,omitempty"`
			Duration                       string `json:"Duration"`
			DurationString                 string `json:"Duration_String"`
			DurationString1                string `json:"Duration_String1"`
			DurationString2                string `json:"Duration_String2"`
			DurationString3                string `json:"Duration_String3"`
			DurationString4                string `json:"Duration_String4,omitempty"`
			DurationString5                string `json:"Duration_String5"`
			OverallBitRateMode             string `json:"OverallBitRate_Mode,omitempty"`
			OverallBitRateModeString       string `json:"OverallBitRate_Mode_String,omitempty"`
			OverallBitRate                 string `json:"OverallBitRate,omitempty"`
			OverallBitRateString           string `json:"OverallBitRate_String,omitempty"`
			FrameRate                      string `json:"FrameRate"`
			FrameRateString                string `json:"FrameRate_String"`
			FrameCount                     string `json:"FrameCount"`
			StreamSize                     string `json:"StreamSize"`
			StreamSizeString               string `json:"StreamSize_String"`
			StreamSizeString1              string `json:"StreamSize_String1"`
			StreamSizeString2              string `json:"StreamSize_String2"`
			StreamSizeString3              string `json:"StreamSize_String3"`
			StreamSizeString4              string `json:"StreamSize_String4"`
			StreamSizeString5              string `json:"StreamSize_String5"`
			StreamSizeProportion           string `json:"StreamSize_Proportion"`
			HeaderSize                     string `json:"HeaderSize,omitempty"`
			DataSize                       string `json:"DataSize,omitempty"`
			FooterSize                     string `json:"FooterSize,omitempty"`
			IsStreamable                   string `json:"IsStreamable,omitempty"`
			FileModifiedDate               string `json:"File_Modified_Date,omitempty"`
			FileModifiedDateLocal          string `json:"File_Modified_Date_Local,omitempty"`
			EncodedApplication             string `json:"Encoded_Application,omitempty"`
			EncodedApplicationString       string `json:"Encoded_Application_String,omitempty"`
			StreamOrder                    string `json:"StreamOrder,omitempty"`
			ID                             string `json:"ID,omitempty"`
			IDString                       string `json:"ID_String,omitempty"`
			FormatInfo                     string `json:"Format_Info,omitempty"`
			FormatUrl                      string `json:"Format_Url,omitempty"`
			FormatLevel                    string `json:"Format_Level,omitempty"`
			FormatSettings                 string `json:"Format_Settings,omitempty"`
			FormatSettingsCABAC            string `json:"Format_Settings_CABAC,omitempty"`
			FormatSettingsCABACString      string `json:"Format_Settings_CABAC_String,omitempty"`
			FormatSettingsRefFrames        string `json:"Format_Settings_RefFrames,omitempty"`
			FormatSettingsRefFramesString  string `json:"Format_Settings_RefFrames_String,omitempty"`
			CodecIDInfo                    string `json:"CodecID_Info,omitempty"`
			SourceDuration                 string `json:"Source_Duration,omitempty"`
			SourceDurationString           string `json:"Source_Duration_String,omitempty"`
			SourceDurationString1          string `json:"Source_Duration_String1,omitempty"`
			SourceDurationString2          string `json:"Source_Duration_String2,omitempty"`
			SourceDurationString3          string `json:"Source_Duration_String3,omitempty"`
			SourceDurationString4          string `json:"Source_Duration_String4,omitempty"`
			SourceDurationString5          string `json:"Source_Duration_String5,omitempty"`
			SourceDurationLastFrame        string `json:"Source_Duration_LastFrame,omitempty"`
			SourceDurationLastFrameString3 string `json:"Source_Duration_LastFrame_String3,omitempty"`
			SourceDurationLastFrameString4 string `json:"Source_Duration_LastFrame_String4,omitempty"`
			SourceDurationLastFrameString5 string `json:"Source_Duration_LastFrame_String5,omitempty"`
			BitRate                        string `json:"BitRate,omitempty"`
			BitRateString                  string `json:"BitRate_String,omitempty"`
			BitRateMaximum                 string `json:"BitRate_Maximum,omitempty"`
			BitRateMaximumString           string `json:"BitRate_Maximum_String,omitempty"`
			Width                          string `json:"Width,omitempty"`
			WidthString                    string `json:"Width_String,omitempty"`
			Height                         string `json:"Height,omitempty"`
			HeightString                   string `json:"Height_String,omitempty"`
			StoredHeight                   string `json:"Stored_Height,omitempty"`
			SampledWidth                   string `json:"Sampled_Width,omitempty"`
			SampledHeight                  string `json:"Sampled_Height,omitempty"`
			PixelAspectRatio               string `json:"PixelAspectRatio,omitempty"`
			DisplayAspectRatio             string `json:"DisplayAspectRatio,omitempty"`
			DisplayAspectRatioString       string `json:"DisplayAspectRatio_String,omitempty"`
			Rotation                       string `json:"Rotation,omitempty"`
			FrameRateMode                  string `json:"FrameRate_Mode,omitempty"`
			FrameRateModeString            string `json:"FrameRate_Mode_String,omitempty"`
			FrameRateModeOriginal          string `json:"FrameRate_Mode_Original,omitempty"`
			FrameRateNum                   string `json:"FrameRate_Num,omitempty"`
			FrameRateDen                   string `json:"FrameRate_Den,omitempty"`
			SourceFrameCount               string `json:"Source_FrameCount,omitempty"`
			ColorSpace                     string `json:"ColorSpace,omitempty"`
			ChromaSubsampling              string `json:"ChromaSubsampling,omitempty"`
			ChromaSubsamplingString        string `json:"ChromaSubsampling_String,omitempty"`
			BitDepth                       string `json:"BitDepth,omitempty"`
			BitDepthString                 string `json:"BitDepth_String,omitempty"`
			ScanType                       string `json:"ScanType,omitempty"`
			ScanTypeString                 string `json:"ScanType_String,omitempty"`
			BitsPixelFrame                 string `json:"BitsPixel_Frame,omitempty"`
			SourceStreamSize               string `json:"Source_StreamSize,omitempty"`
			SourceStreamSizeString         string `json:"Source_StreamSize_String,omitempty"`
			SourceStreamSizeString1        string `json:"Source_StreamSize_String1,omitempty"`
			SourceStreamSizeString2        string `json:"Source_StreamSize_String2,omitempty"`
			SourceStreamSizeString3        string `json:"Source_StreamSize_String3,omitempty"`
			SourceStreamSizeString4        string `json:"Source_StreamSize_String4,omitempty"`
			SourceStreamSizeString5        string `json:"Source_StreamSize_String5,omitempty"`
			SourceStreamSizeProportion     string `json:"Source_StreamSize_Proportion,omitempty"`
			EncodedLibrary                 string `json:"Encoded_Library,omitempty"`
			EncodedLibraryString           string `json:"Encoded_Library_String,omitempty"`
			EncodedLibraryName             string `json:"Encoded_Library_Name,omitempty"`
			EncodedLibraryVersion          string `json:"Encoded_Library_Version,omitempty"`
			EncodedLibrarySettings         string `json:"Encoded_Library_Settings,omitempty"`
			ColourDescriptionPresent       string `json:"colour_description_present,omitempty"`
			ColourDescriptionPresentSource string `json:"colour_description_present_Source,omitempty"`
			ColourRange                    string `json:"colour_range,omitempty"`
			ColourRangeSource              string `json:"colour_range_Source,omitempty"`
			ColourPrimaries                string `json:"colour_primaries,omitempty"`
			ColourPrimariesSource          string `json:"colour_primaries_Source,omitempty"`
			TransferCharacteristics        string `json:"transfer_characteristics,omitempty"`
			TransferCharacteristicsSource  string `json:"transfer_characteristics_Source,omitempty"`
			MatrixCoefficients             string `json:"matrix_coefficients,omitempty"`
			MatrixCoefficientsSource       string `json:"matrix_coefficients_Source,omitempty"`
			Extra                          struct {
				SourceDelay           string `json:"Source_Delay"`
				SourceDelaySource     string `json:"Source_Delay_Source"`
				CodecConfigurationBox string `json:"CodecConfigurationBox"`
			} `json:"extra,omitempty"`
			FormatAdditionalFeatures string `json:"Format_AdditionalFeatures,omitempty"`
			BitRateMode              string `json:"BitRate_Mode,omitempty"`
			BitRateModeString        string `json:"BitRate_Mode_String,omitempty"`
			Channels                 string `json:"Channels,omitempty"`
			ChannelsString           string `json:"Channels_String,omitempty"`
			ChannelPositions         string `json:"ChannelPositions,omitempty"`
			ChannelPositionsString2  string `json:"ChannelPositions_String2,omitempty"`
			ChannelLayout            string `json:"ChannelLayout,omitempty"`
			SamplesPerFrame          string `json:"SamplesPerFrame,omitempty"`
			SamplingRate             string `json:"SamplingRate,omitempty"`
			SamplingRateString       string `json:"SamplingRate_String,omitempty"`
			SamplingCount            string `json:"SamplingCount,omitempty"`
			CompressionMode          string `json:"Compression_Mode,omitempty"`
			CompressionModeString    string `json:"Compression_Mode_String,omitempty"`
			Default                  string `json:"Default,omitempty"`
			DefaultString            string `json:"Default_String,omitempty"`
			AlternateGroup           string `json:"AlternateGroup,omitempty"`
			AlternateGroupString     string `json:"AlternateGroup_String,omitempty"`
		} `json:"track"`
	} `json:"media"`
}

type Video

type Video struct {
	Type                           string `json:"@type"`
	Count                          string `json:"Count"`
	StreamCount                    string `json:"StreamCount"`
	StreamKind                     string `json:"StreamKind"`
	StreamKindString               string `json:"StreamKind_String"`
	StreamKindID                   string `json:"StreamKindID"`
	Format                         string `json:"Format"`
	FormatString                   string `json:"Format_String"`
	FormatCommercial               string `json:"Format_Commercial"`
	FormatProfile                  string `json:"Format_Profile"`
	InternetMediaType              string `json:"InternetMediaType"`
	CodecID                        string `json:"CodecID"`
	Duration                       string `json:"Duration"`
	DurationString                 string `json:"Duration_String"`
	DurationString1                string `json:"Duration_String1"`
	DurationString2                string `json:"Duration_String2"`
	DurationString3                string `json:"Duration_String3"`
	DurationString4                string `json:"Duration_String4"`
	DurationString5                string `json:"Duration_String5"`
	FrameRate                      string `json:"FrameRate"`
	FrameRateString                string `json:"FrameRate_String"`
	FrameCount                     string `json:"FrameCount"`
	StreamSize                     string `json:"StreamSize"`
	StreamSizeString               string `json:"StreamSize_String"`
	StreamSizeString1              string `json:"StreamSize_String1"`
	StreamSizeString2              string `json:"StreamSize_String2"`
	StreamSizeString3              string `json:"StreamSize_String3"`
	StreamSizeString4              string `json:"StreamSize_String4"`
	StreamSizeString5              string `json:"StreamSize_String5"`
	StreamSizeProportion           string `json:"StreamSize_Proportion"`
	StreamOrder                    string `json:"StreamOrder"`
	ID                             string `json:"ID"`
	IDString                       string `json:"ID_String"`
	FormatInfo                     string `json:"Format_Info"`
	FormatUrl                      string `json:"Format_Url"`
	FormatLevel                    string `json:"Format_Level"`
	Width                          string `json:"Width"`
	WidthString                    string `json:"Width_String"`
	Height                         string `json:"Height"`
	HeightString                   string `json:"Height_String"`
	SampledWidth                   string `json:"Sampled_Width"`
	SampledHeight                  string `json:"Sampled_Height"`
	PixelAspectRatio               string `json:"PixelAspectRatio"`
	DisplayAspectRatio             string `json:"DisplayAspectRatio"`
	DisplayAspectRatioString       string `json:"DisplayAspectRatio_String"`
	FrameRateMode                  string `json:"FrameRate_Mode"`
	FrameRateModeString            string `json:"FrameRate_Mode_String"`
	FrameRateNum                   string `json:"FrameRate_Num"`
	FrameRateDen                   string `json:"FrameRate_Den"`
	ColorSpace                     string `json:"ColorSpace"`
	ChromaSubsampling              string `json:"ChromaSubsampling"`
	ChromaSubsamplingString        string `json:"ChromaSubsampling_String"`
	BitDepth                       string `json:"BitDepth"`
	BitDepthString                 string `json:"BitDepth_String"`
	ColourDescriptionPresent       string `json:"colour_description_present"`
	ColourDescriptionPresentSource string `json:"colour_description_present_Source"`
	ColourRange                    string `json:"colour_range"`
	ColourRangeSource              string `json:"colour_range_Source"`
	ColourPrimaries                string `json:"colour_primaries"`
	ColourPrimariesSource          string `json:"colour_primaries_Source"`
	TransferCharacteristics        string `json:"transfer_characteristics"`
	TransferCharacteristicsSource  string `json:"transfer_characteristics_Source"`
	MatrixCoefficients             string `json:"matrix_coefficients"`
	MatrixCoefficientsSource       string `json:"matrix_coefficients_Source"`
	Extra                          struct {
		SourceDelay           string `json:"Source_Delay"`
		SourceDelaySource     string `json:"Source_Delay_Source"`
		CodecConfigurationBox string `json:"CodecConfigurationBox"`
	} `json:"extra"`
	Default       string `json:"Default"`
	DefaultString string `json:"Default_String"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL