hark007 Codecs是一組用于Windows操作系統(tǒng)的音頻和視頻編解碼器套件,它可以讓您的計算機(jī)能夠支持更多不同格式的音頻和視頻文件。Shark007 Codecs旨在提供全面的多媒體文件支持,使您能夠在Windows Media Player等播放器中播放各種不同格式的音頻和視頻。
Shark007 Codecs的18.4.8版本可能包括了對之前版本的改進(jìn)和修復(fù),例如對特定音頻和視頻格式的支持、性能優(yōu)化、bug修復(fù)等。更新通常會帶來更好的穩(wěn)定性、兼容性和功能性,同時也可能會解決之前版本中存在的問題。
如果您經(jīng)常處理各種不同格式的音頻和視頻文件,并且發(fā)現(xiàn)自己的播放器無法正常播放某些文件,那么安裝Shark007 Codecs可能會有所幫助。它可以擴(kuò)展您的播放器的支持范圍,讓您能夠輕松地播放更多類型的多媒體文件。
Shark007 Codecs version 18.4.8 主要的功能可以按照以下幾個分類來描述:
總的來說,Shark007 Codecs version 18.4.8 的功能主要包括提供多媒體文件的解碼和播放支持、管理文件關(guān)聯(lián)和注冊表信息、提供配置工具進(jìn)行定制和調(diào)整、優(yōu)化性能以及提供兼容性支持。這些功能使得用戶能夠更方便地在Windows系統(tǒng)中處理和播放各種多媒體文件。
Shark007 Codecs是一個基于Microsoft DirectShow架構(gòu)的編解碼器套件,它通過向Windows操作系統(tǒng)添加新的編解碼器和過濾器來擴(kuò)展系統(tǒng)對多媒體文件的支持。以下是Shark007 Codecs的一些底層原理:
Shark007 Codecs通過擴(kuò)展系統(tǒng)的多媒體處理能力,使得Windows操作系統(tǒng)能夠更好地支持各種不同格式的音頻和視頻文件。它利用DirectShow架構(gòu)和一系列編解碼器和過濾器來實(shí)現(xiàn)這一目標(biāo),同時提供了用戶友好的配置工具,讓用戶能夠根據(jù)自己的需求進(jìn)行定制和調(diào)整。
Shark007 Codecs的架構(gòu)主要基于Microsoft的DirectShow框架,并且包含了一系列編解碼器和過濾器。讓我更詳細(xì)地解釋一下它的架構(gòu):
Shark007 Codecs的架構(gòu)是建立在DirectShow框架之上的,并且包含了一系列編解碼器和過濾器,以及相關(guān)的文件關(guān)聯(lián)、注冊表信息和配置工具。這使得它能夠?yàn)閃indows系統(tǒng)提供更好的多媒體文件支持,并且讓用戶能夠根據(jù)需要進(jìn)行定制和調(diào)整。
Shark007 Codecs version 18.4.8 適用于以下多媒體處理場景:
Shark007 Codecs version 18.4.8 的應(yīng)用場景主要包括在Windows系統(tǒng)中播放各種音頻和視頻文件,解決文件格式不被支持的問題,進(jìn)行多媒體文件的后期處理,以及定制多媒體播放體驗(yàn)。通過安裝Shark007 Codecs,用戶可以獲得更好的多媒體文件處理和播放體驗(yàn)。
當(dāng)前的顯著更新:
對于ffmpeg命令行的使用 之前一直都是通過百度(慚愧),一邊找 一邊用 感覺寫起來比較麻煩 就在這記錄下 方便以后溫習(xí)
我們都知道從官網(wǎng)下來的可以直接運(yùn)行的程序有三個 一個是ffmpeg.exe ffplay.exe ffprobe.exe
關(guān)于ffmpeg的官網(wǎng)里邊 一般是提供三種(static shared dev)
第一個static是提供了之前說的那三個程序 并且人家把各個dll集成了進(jìn)去 導(dǎo)致程序的大小比較大
第二個shared 也提供了那三個程序 只不過大小就小得多 因?yàn)樗€提供了各種dll
第三個就完全適用于開發(fā)人員 提供了lib以及頭文件
這邊我們就直接來說說提供的那三個程序怎么用(直接點(diǎn)是沒用的哈 直接在命令行里邊用就好)
ffmpeg是用來轉(zhuǎn)碼的工具 ffplay是用來播放的 ffprobe是用來查看文件格式的
**************************************************************************************************************************************
首先我們來看下ffmpeg
http://ffmpeg.org/ffmpeg.html 官方說明
我自己輸入 ffmpeg -h
首先會顯示ffmpeg的版本 以及編譯這個用的GCC的版本 以及編譯之前configure的選項 之后就是依賴各種庫的版本
基本的信息顯示完了以后 就會告訴你怎么使用
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
當(dāng)然我們也可以活用help信息
Getting help:
-h -- print basic options 會打印基本的選項
-h long -- print more options 會打印更多的選項
-h full -- print all options (including all format and codec specific options, very long) 打印所有的選項(包括所有格式和編解碼器特定選項,很長)
-h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter 可以打印指定的選項
See man ffmpeg for detailed description of the options. 當(dāng)然了你要想看得仔細(xì) 有關(guān)選項的詳細(xì)描述,請參閱man ffmpeg。
下面我們就來看看各個選項(之后再來一個個試)
Print help / information / capabilities:
-L show license
-h topic show help
-? topic show help
-help topic show help
--help topic show help
-version show version
-buildconf show build configuration
-formats show available formats 顯示所支持的格式
-muxers show available muxers 顯示所有可用的封裝格式
-demuxers show available demuxers 顯示所有可用的解封裝格式
-devices show available devices 顯示支持的設(shè)備(這里顯示的只是很大的范圍 并不會顯示具體的設(shè)備 比如我輸入ffmpeg -devices 只會像是下面輸出的那樣)
Devices:
D. = Demuxing supported 可以理解為輸入設(shè)備(我們可以這么理解 解封裝是獲取流 這個設(shè)備其實(shí)干的也是獲取流的事)
.E = Muxing supported 可以理解為輸出設(shè)備(同理 輸出設(shè)備是使用流的 和封裝類似)
--
E caca caca (color ASCII art) output device
D dshow DirectShow capture
D lavfi Libavfilter virtual input device
E sdl,sdl2 SDL2 output device
D vfwcap VfW video capture
-codecs show available codecs 顯示支持的編解碼器(看清楚 是編解碼器)
需要注意的就是前面的那些什么 D,E,V,A,S,I,L,S的一類的意思
D..... = Decoding supported 解碼
.E.... = Encoding supported 編碼
..V... = Video codec 視頻
..A... = Audio codec 音頻
..S... = Subtitle codec 字幕
...I.. = Intra frame-only codec 幀內(nèi)編解碼器
....L. = Lossy compression 有損
.....S = Lossless compression 無損
-decoders show available decoders 顯示支持的解碼器
-encoders show available encoders 顯示支持的編碼器
-bsfs show available bit stream filters 顯示可用的比特流過濾器
-protocols show available protocols 顯示支持的協(xié)議
-filters show available filters 顯示可用的過濾器(需要注意下下面的幾個的意思 現(xiàn)在我還是沒有搞懂什么意思 要去找找代碼看看了)
Filters:
T.. = Timeline support
.S. = Slice threading
..C = Command support
A = Audio input/output
V = Video input/output
N = Dynamic number and/or type of input/output
| = Source or sink filter
-pix_fmts show available pixel formats 顯示可用像素格式
Pixel formats:
I.... = Supported Input format for conversion 支持轉(zhuǎn)換的輸入格式
.O... = Supported Output format for conversion 支持的轉(zhuǎn)換輸出格式
..H.. = Hardware accelerated format 硬件加速格式
...P. = Paletted format 調(diào)色格式
....B = Bitstream format 位流格式
下面這個是輸出的格式
FLAGS NAME (標(biāo)志名稱)NB_COMPONENTS (組成數(shù)量 yuv420 就是有三個組成的) BITS_PER_PIXEL(每個像素占得位數(shù))
-layouts show standard channel layouts 顯示標(biāo)準(zhǔn)通道布局
-sample_fmts show available audio sample formats 顯示可用的音頻示例格式
-colors show available color names 顯示可用顏色名稱
-sources device list sources of the input device 列出輸入設(shè)備的源(這個 還不清楚怎么用 到時看看官方文檔)
-sinks device list sinks of the output device 列出輸出設(shè)備的接收器
-hwaccels show available HW acceleration methods 顯示可用的硬件加速方法
Global options (affect whole program instead of just one file: 全局選項-----影響整個程序,而不僅僅是一個文件:
-loglevel loglevel set logging level 設(shè)定log等級 "quiet" "panic" "fatal" "error" "warning" "info" "verbose" "debug" "trace"
補(bǔ)充說明: Flags can also be used alone by adding a ’+’/’-’ prefix to set/reset a single flag without affecting other flags or changing loglevel. When setting both flags and loglevel, a ’+’ separator is expected between the last flags value and before loglevel.
意思就是----還可以單獨(dú)使用標(biāo)志,添加‘+’/‘-’前綴來設(shè)置/重置單個標(biāo)志,而不影響其他標(biāo)志或更改日志級別。當(dāng)同時設(shè)置標(biāo)志和日志級別時,需要在最后一個標(biāo)志值之間和日志級別之前使用。
eg:ffmpeg -loglevel repeat+level+verbose -i input output
-v loglevel set logging level 和上面一樣的
-report generate a report 生成報表
-max_alloc bytes set maximum size of a single allocated block 設(shè)置單個分配塊的最大大小
-y overwrite output files 覆蓋輸出文件
-n never overwrite output files 永遠(yuǎn)不要覆蓋輸出文件
-ignore_unknown Ignore unknown stream types 忽略未知流類型
-filter_threads number of non-complex filter threads 非復(fù)雜過濾線程數(shù) (后邊要加數(shù)字)
-filter_complex_threads number of threads for -filter_complex 過濾器復(fù)合體的線程數(shù) (后邊要加數(shù)字)
-stats print progress report during encoding 在編碼期間打印進(jìn)度報告
-max_error_rate ratio of errors (0.0: no errors, 1.0: 100% error maximum error rate 錯誤率(0:無錯誤,1:100%錯誤最大錯誤率)
-bits_per_raw_sample number set the number of bits per raw sample 設(shè)置每個原始樣本的位數(shù)
-vol volume change audio volume (256=normal) 改變音頻音量(256=正常)
Per-file main options: 每個文件的主要選項
-f fmt force format 強(qiáng)迫使用格式‘fmt’
-c codec codec name
-codec codec codec name
-pre preset preset name 預(yù)先設(shè)定名稱
-map_metadata outfile[,metadata]:infile[,metadata] set metadata information of outfile from infile 依據(jù)輸入文件設(shè)置輸出文件的元數(shù)據(jù)信息
-t duration record or transcode "duration" seconds of audio/video 編碼或轉(zhuǎn)碼音頻/視頻的“ duration”秒
-to time_stop record or transcode stop time 記錄或轉(zhuǎn)碼停止時間
-fs limit_size set the limit file size in bytes 設(shè)置限制文件大小(以字節(jié)為單位)
-ss time_off set the start time offset 設(shè)置起始時間偏移量
-sseof time_off set the start time offset relative to EOF 設(shè)置相對于eof的起始時間偏移量。
-seek_timestamp enable/disable seeking by timestamp with -ss 使用-ss啟用/禁用時間戳查找
-timestamp time set the recording timestamp ('now' to set the current time) 設(shè)置錄制時間戳(“立即”設(shè)置當(dāng)前時間)
-metadata string=string add metadata 添加元數(shù)據(jù)
-program title=string:st=number... add program with specified streams 添加具有指定流的程序
-target type specify target file type ("vcd", "svcd", "dvd", "dv" or "dv50" with optional prefixes "pal-", "ntsc-" or "film-") 指定目標(biāo)文件類型( "vcd", "svcd", "dvd", "dv" or "dv50",可選前綴為 "pal-", "ntsc-" or "film-")
-apad audio pad 音頻墊
-frames number set the number of frames to output 將幀數(shù)設(shè)置為輸出
-filter filter_graph set stream filtergraph 設(shè)置流濾波器
-filter_script filename read stream filtergraph description from a file 從文件中讀取流過濾圖描述
-reinit_filter reinit filtergraph on input parameter changes 輸入?yún)?shù)變化的 reinit濾波圖
-discard discard 丟棄
-disposition disposition 配置
Video options: 視頻選項
-vframes number set the number of video frames to output 設(shè)置輸出視頻的幀數(shù)
-r rate set frame rate (Hz value, fraction or abbreviation) 設(shè)置幀速率(Hz值、分?jǐn)?shù)或縮寫)
-s size set frame size (WxH or abbreviation) 設(shè)置幀大小(WXH或縮寫——Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576)
-aspect aspect set aspect ratio (4:3, 16:9 or 1.3333, 1.7777) 設(shè)定高寬比(4:3,16:9或1.3333,1.7777)
-bits_per_raw_sample number set the number of bits per raw sample 設(shè)置每個原始樣本的位數(shù)。
-vn disable video 禁用視頻
-vcodec codec force video codec ('copy' to copy stream) 強(qiáng)制視頻編解碼器(“復(fù)制流)
-timecode hh:mm:ss[:;.]ff set initial TimeCode value. 設(shè)置初始時間碼值
-pass n select the pass number (1 to 3) 選擇通行證號碼(1到3)
-vf filter_graph set video filters 設(shè)置視頻濾波器
-ab bitrate audio bitrate (please use -b:a) 音頻比特率(請使用-b:a)
-b bitrate video bitrate (please use -b:v) 視頻比特率(請使用-b:v)
-dn disable data 禁用數(shù)據(jù)
Audio options: 音頻選項
-aframes number set the number of audio frames to output 設(shè)置輸出音頻流的幀數(shù)
-aq quality set audio quality (codec-specific) 設(shè)置音頻質(zhì)量(特定編解碼器)
-ar rate set audio sampling rate (in Hz) 設(shè)置音頻采樣率(以赫茲為單位)
-ac channels set number of audio channels 設(shè)置音頻通道數(shù)
-an disable audio 禁用音頻
-acodec codec force audio codec ('copy' to copy stream) 強(qiáng)制音頻編解碼器(“復(fù)制流)
-vol volume change audio volume (256=normal) 改變音頻音量(256=正常)
-af filter_graph set audio filters 設(shè)置音頻過濾器
Subtitle options: 字幕選項
-s size set frame size (WxH or abbreviation) 設(shè)置幀大小(WxH或省略)
-sn disable subtitle 禁用字幕
-scodec codec force subtitle codec ('copy' to copy stream) 強(qiáng)制字幕編解碼器(“復(fù)制流)
-stag fourcc/tag force subtitle tag/fourcc 強(qiáng)制字幕標(biāo)簽/fourcc碼
-fix_sub_duration fix subtitles duration 修正字幕持續(xù)時間
-canvas_size size set canvas size (WxH or abbreviation) 設(shè)置畫布大小(WXH或縮寫)
-spre preset set the subtitle options to the indicated preset 將字幕選項設(shè)置為指定的預(yù)置
好了 我們就開始用實(shí)例進(jìn)行鞏固
ffmpeg -i cyq.avi out.avi
這個是最簡單的轉(zhuǎn)碼命令 轉(zhuǎn)碼的內(nèi)部參數(shù)都是取的默認(rèn)值
我們來看下相關(guān)的參數(shù)
后來才意識到之前為什么會寫錯 現(xiàn)在 我們再來重溫一遍ffmpeg的書寫格式
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
ffmpeg + 全局的選項(可省略)+{輸入文件選項 -i 文件} +{輸出文件選項 文件}
**************************************************************************************************************************************
ffplay 是用SDL來寫的一個播放器
(官方的解釋:ffplay是一個非常簡單和可移植的媒體播放器,使用ffmpeg庫和SDL庫。它主要用作各種ffmpeg API的測試床。)
他的功能可謂是很強(qiáng)大 但是就是沒有圖形化的操作界面 只能通過鍵盤來操作
這邊就分 快捷鍵以及選項來進(jìn)行說明
http://ffmpeg.org/ffplay.html 官網(wǎng)的使用說明
我們先來看下ffplay -h
因?yàn)轱@示的東西太多 我這邊就來挑選著記錄
前邊顯示的和ffmpeg的差不多
我們先看下他的用法:ffplay [options] input_file
接下來看下主選項:
Main options:
-L show license
-h topic show help
-? topic show help
-help topic show help
--help topic show help
-version show version
-buildconf show build configuration
-formats show available formats
-muxers show available muxers
-demuxers show available demuxers
-devices show available devices
-codecs show available codecs
-decoders show available decoders
-encoders show available encoders
-bsfs show available bit stream filters
-protocols show available protocols
-filters show available filters
-pix_fmts show available pixel formats
-layouts show standard channel layouts
-sample_fmts show available audio sample formats
-colors show available color names
-loglevel loglevel set logging level
-v loglevel set logging level
-report generate a report
-max_alloc bytes set maximum size of a single allocated block
-sources device list sources of the input device 顯示輸入設(shè)備的自動檢測源。
-sinks device list sinks of the output device 顯示輸出設(shè)備的自動檢測接收器。
-x width force displayed width
-y height force displayed height
-s size set frame size (WxH or abbreviation)
-fs force full screen 強(qiáng)制全屏(和ffmpeg中的fs是不一樣的用法)
-an disable audio
-vn disable video
-sn disable subtitling
-ss pos seek to a given position in seconds 以秒為單位尋找給定位置
-t duration play "duration" seconds of audio/video 播放音頻/視頻的“ duration”秒
-bytes val seek by bytes 0=off 1=on -1=auto 按字節(jié)查找 0=OFF 1=ON -1=AUTO
-nodisp disable graphical display 禁用圖形顯示
-noborder borderless window 無邊界窗口
-volume volume set startup volume 0=min 100=max 設(shè)置啟動 volume0=min 100=max
-f fmt force format
-window_title window title set window title 窗口標(biāo)題集窗口標(biāo)題
-af filter_graph set audio filters 設(shè)置音頻過濾器
-showmode mode select show mode (0 = video, 1 = waves, 2 = RDFT) 選擇顯示模式(0=視頻,1=波形,2=RDFT)
-i input_file read specified file 讀取指定文件