ffmpeg將mp4轉換為swf

文章目錄

    • ffmpeg安裝、配置
        • java運行報錯 Cannot run program "ffmpeg"
    • ffmpeg命令
        • mp4轉為swf示例
      • ### ffmpeg -i input.mkv -b:v 600 -c:v libx264 -vf scale=1920:1080 -crf 10 -ar 48000 -r 24 output.swf
        • mkv轉為swf示例
    • 其他
      • 文檔
      • 命令參數簡介

需要將mp4轉換為swf,網上有很多軟件,不是收費,就是功能不全,要不就是分辨率比例不滿足要求。突然想到實在不行就自己開發個,誰讓自己是程序員呢。

ffmpeg安裝、配置

不是只寫程序就行,需要先安裝ffpmeg。

下載地址:
https://www.gyan.dev/ffmpeg/builds/#release-builds # 下載zip包就行

然后配置環境變量,在path中添加即可。
ffmpeg.exe所在的目錄就是要添加到path中的路徑。如:
D:\Program Files\ffmpeg\ffmpeg-7.0.1-essentials_build\bin

打開cmd,輸入ffmpeg -h 命令試下是否可以了。

注:git bash命令行最好也添加下。

java運行報錯 Cannot run program “ffmpeg”

Cannot run program “ffmpeg -i d:\swf\input.mp4 -vcodec libx264 -f flv d:\swf\output.swf”: CreateProcess error=2, 系統找不到指定的文件

解決方案:
1、ffmpeg已安裝,且環境變量已配置。
2、git bash的安裝路徑下,也添加bin下的3個exe。

但還是報錯,這就怪了。

ffmpeg命令

初衷原本是想用java開發的,后來發現直接用命令就可以,那應該比java更方便。

這里特別強調下,ffmpeg是個非常強大的命令,里面知識特別多,如果連擴展也算上,如:ffmpeg-all,ffplay。那么知識就更多了,要花太多的時間
想要用好這個命令,對視頻音頻各種編碼還需要有一定認知,一般人都不太懂這個。
所以,我們會用幾個常用命令,能實現簡單轉換就夠了。

命令模板:

usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

ffmpeg -version # 查看版本
ffmpeg -h # 幫助

以下表格內三種寫法是等價的:

音頻視頻字幕
-codec:a-codec:v-codec:s
-c:a-c:v-c:s
-acodec-vcodec-scodec

①、主要命令選項
-f fmt (input/output) :指定輸入或者輸出文件格式(封裝格式,視頻容器)。常規可省略,而使用依據擴展名(文件的前幾百 K 的內容,智能分析)的自動指定,但一些選項需要強制明確設定。
-i filename(input) :指定輸入文件。
-y(global):默認自動覆蓋輸出文件,而不再詢問確認。
-n( global):不覆蓋輸出文件,如果輸出文件已經存在則立即退出。
-t duration( input/output):限制輸入/輸出的時間。如果是在 -i 前面,就是限定從輸入中讀取多少時間的數據;如果是用于限定輸出文件,則表示寫入多少時間數據后就停止。duration 可以是以秒為單位的數值或者 hh:mm:ss.xxx 格式的時間值。注意 -to 和 -t 是互斥的,-t 有更高優先級。
-to position (output) :只寫入 position 時間后就停止,position 可以是以秒為單位的數值或者 hh:mm:ss.xxx 格式的時間值。注意 -to 和 -t 是互斥的,-t 有更高優先級。
-ss position (input/output):當在 -i 前,表示定位輸入文件到 position 指定的位置。注意可能一些格式是不支持精確定位的,所以 ffmpeg 可能是定位到最接近 position(在之前)的可定位點。position 可以是以秒為單位的數值或者 hh:mm:ss.xxx 格式的時間值。
-codec[:stream_specifier] codec (input/output,per-stream) :為特定的文件選擇編/解碼模式,對于輸出文件就是編碼器, 對于輸入或者某個流就是解碼器。選項參數中 codec 是編解碼器的名字,或者是 copy(僅對輸出文件)則意味著流數據直接復制而不再編碼。
使用下面命令可以檢測 ffmepg 所支持的所有編碼器的格式

ffmpeg -encoders # 查看所支持的所有編碼器的格式,內容太多,不列出了,還是那句話ffmpeg是個比較專業的東西

mp4轉為swf示例
ffmpeg -i input.mp4 -vcodec copy -f flv output.swf
參數說明:
-i input.mp4 指定輸入文件。
-vcodec copy 表示復制視頻編解碼器數據。
-f flv 指定輸出格式為FLV,因為SWF通常通過FLV容器格式傳輸視頻。

### ffmpeg -i input.mkv -b:v 600 -c:v libx264 -vf scale=1920:1080 -crf 10 -ar 48000 -r 24 output.swf

報錯:
SWF muxer only supports VP6, FLV, Flash Screen Video, P
NG and MJPEG

mkv轉為swf示例
ffmpeg -i input.mkv -c:v flashvideo -c:a flashaudio -f flash output.swf
在這個命令中:
-i input.mkv 指定輸入文件。
-c:v flashvideo 指定視頻編碼器為flashvideo,這是SWF格式支持的視頻編碼器之一。
-c:a flashaudio 指定音頻編碼器為flashaudio,這是SWF格式支持的音頻編碼器之一。
-f flash 指定輸出格式為SWF。
output.swf 是輸出文件的名稱。請注意,確保你的FFmpeg版本支持你想要使用的編碼器。如果你的版本不支持這些編碼器,你可能需要使用其他編碼器或者升級你的FFmpeg。

其他

文檔

官網文檔:
https://ffmpeg.org/ffmpeg.html

這個是文檔詳細描述頁:
https://ffmpeg.org/documentation.html

比較不錯的文章:
FFmpeg常用命令行講解及實戰一

命令參數簡介

ffmpeg -h返回的內容:

ffmpeg -h
返回:
ffmpeg version 7.0.1-essentials_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developersbuilt with gcc 13.2.0 (Rev5, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberbandlibavutil      59.  8.100 / 59.  8.100libavcodec     61.  3.100 / 61.  3.100libavformat    61.  1.100 / 61.  1.100libavdevice    61.  1.100 / 61.  1.100libavfilter    10.  1.100 / 10.  1.100libswscale      8.  1.100 /  8.  1.100libswresample   5.  1.100 /  5.  1.100libpostproc    58.  1.100 / 58.  1.100
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...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/bsf/protocolSee man ffmpeg for detailed description of the options.Per-stream options can be followed by :<stream_spec> to apply that option to specific streams only. <stream_spec> can be a stream index, or v/a/s for video/audio/subtitle (see manual for full syntax).Print help / information / capabilities:
-L                  show license
-h <topic>          show help
-version            show version
-muxers             show available muxers
-demuxers           show available demuxers
-devices            show available devices
-decoders           show available decoders
-encoders           show available encoders
-filters            show available filters
-pix_fmts           show available pixel formats
-layouts            show standard channel layouts
-sample_fmts        show available audio sample formatsGlobal options (affect whole program instead of just one file):
-v <loglevel>       set logging level
-y                  overwrite output files
-n                  never overwrite output files
-stats              print progress report during encodingPer-file options (input and output):
-f <fmt>            force container format (auto-detected otherwise)
-t <duration>       stop transcoding after specified duration
-to <time_stop>     stop transcoding after specified time is reached
-ss <time_off>      start transcoding at specified timePer-file options (output-only):
-metadata[:<spec>] <key=value>  add metadataPer-stream options:
-c[:<stream_spec>] <codec>  select encoder/decoder ('copy' to copy stream without reencoding)
-filter[:<stream_spec>] <filter_graph>  apply specified filters to audio/videoVideo options:
-r[:<stream_spec>] <rate>  override input framerate/convert to given output framerate (Hz value, fraction or abbreviation)
-aspect[:<stream_spec>] <aspect>  set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)
-vn                 disable video
-vcodec <codec>     alias for -c:v (select encoder/decoder for video streams)
-vf <filter_graph>  alias for -filter:v (apply filters to video streams)
-b <bitrate>        video bitrate (please use -b:v)Audio options:
-aq <quality>       set audio quality (codec-specific)
-ar[:<stream_spec>] <rate>  set audio sampling rate (in Hz)
-ac[:<stream_spec>] <channels>  set number of audio channels
-an                 disable audio
-acodec <codec>     alias for -c:a (select encoder/decoder for audio streams)
-ab <bitrate>       alias for -b:a (select bitrate for audio streams)
-af <filter_graph>  alias for -filter:a (apply filters to audio streams)Subtitle options:
-sn                 disable subtitle
-scodec <codec>     alias for -c:s (select encoder/decoder for subtitle streams)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35703.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35703.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35703.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【回溯算法題記錄】組合總和題匯總

組合總和 39. 組合總和題目描述初始思路后續分析 40. 組合總和 II題目描述思路&#xff08;參考代碼隨想錄&#xff09; 39. 組合總和 題目&#x1f517; 題目描述 給你一個 無重復元素 的整數數組 candidates 和一個目標整數 target &#xff0c;找出 candidates 中可以使數…

3d渲染軟件有哪些(2),渲染100邀請碼1a12

3D渲染軟件有很多&#xff0c;上次我們介紹了幾個&#xff0c;這次我們接著介紹。 1、Arnold Arnold渲染器是一款基于物理算法的電影級渲染引擎&#xff0c;它具有渲染質量高、材質系統豐富、渲染速度快等特點&#xff0c;是3D設計師的極佳選擇。2、Octane Render Octane Ren…

[Gstreamer] gstbasesink 里的 jitter

gstbasesink 里有一個值是 jitter &#xff0c;直譯為抖動。這個值表示當前到達 gstbasesink chain 函數(push mode) 的 GstBuffer 的系統事件 與 這個 buffer 被期望到達的系統時間的差值。 如果 jitter 是整數&#xff0c;則表示 GstBuffer 到晚了&#xff0c;當前 GstBuffer…

HJI與HJB

問題描述 設連續系統狀態方程和性能指標 X ˙ f ( t , X , U ) X ( t 0 ) X 0 J ? [ X ( t f ) , t f ] ∫ t 0 t f F ( X , U , t ) d t \begin{aligned} \dot{X} & f(t, X, U) \quad X\left(t_{0}\right)X_{0} \\ J & \phi\left[X\left(t_{f}\right), t_{f}\r…

【全網最完整】Open CASCADE Technology (OCCT) 構建項目,QT可視化操作,添加自定義測試內容

前言 本文為了記錄自己在實習的過程中&#xff0c;學習到的有關OCCT開源項目的搭建工作&#xff0c;旨在教會小白從0開始下載開源項目及環境搭配&#xff0c;以及如何添加自定義測試內容&#xff0c;最終結果展示如下&#xff1a; 1、項目下載 本項目共需要使用四個工具&#…

如何快速解決驗證碼圖像問題 | 最佳圖像(OCR)驗證碼解決工具

你是否曾經遇到過陷入一個看似無盡的 CAPTCHA 挑戰中&#xff0c;努力識別扭曲的字符或數字&#xff1f;這些令人抓狂的 CAPTCHA 是為了確保你是人類而不是機器人&#xff0c;但它們也給真正的用戶帶來了頭痛。那么&#xff0c;有沒有快速解決這些 CAPTCHA 圖像的方法&#xff…

2021年12月電子學會青少年軟件編程 中小學生Python編程等級考試三級真題解析(判斷題)

2021年12月Python編程等級考試三級真題解析 判斷題&#xff08;共10題&#xff0c;每題2分&#xff0c;共20分&#xff09; 26、在Python中&#xff0c;0x100010表示十六進制數100010 答案&#xff1a;對 考點分析&#xff1a;考查進制轉換&#xff0c;十六進制數1??0x開頭…

Flask之數據庫

前言&#xff1a;本博客僅作記錄學習使用&#xff0c;部分圖片出自網絡&#xff0c;如有侵犯您的權益&#xff0c;請聯系刪除 目錄 一、數據庫的分類 1.1、SQL 1.2、NoSQL 1.3、如何選擇&#xff1f; 二、ORM魔法 三、使用Flask-SQLALchemy管理數據庫 3.1、連接數據庫服…

移動互聯網應用程序(APP)信息安全等級保護測評標準解讀

隨著移動互聯網的迅猛發展&#xff0c;移動應用(App)已成為個人信息處理與交互的主要渠道&#xff0c;其安全性直接關系到國家安全、社會穩定以及用戶個人隱私權益。為加強移動App的信息安全管理&#xff0c;國家標準化管理委員會正式發布了GB/T 42582-2023《信息安全技術 移動…

等保2.0時,最常見的挑戰是什么?

等保2.0的常見挑戰 等保2.0&#xff08;網絡安全等級保護2.0&#xff09;是中國網絡安全領域的基本制度&#xff0c;它對信息系統進行分級分類、安全保護和安全測評&#xff0c;以提高信息系統的安全性和可信性。在等保2.0的實施過程中&#xff0c;企業和組織面臨多方面的挑戰&…

寵物領養救助管理系帶萬字文檔java項目基于springboot+vue的寵物管理系統java課程設計java畢業設計

文章目錄 寵物領養救助管理系統一、項目演示二、項目介紹三、萬字項目文檔四、部分功能截圖五、部分代碼展示六、底部獲取項目源碼帶萬字文檔&#xff08;9.9&#xffe5;帶走&#xff09; 寵物領養救助管理系統 一、項目演示 寵物領養救助系統 二、項目介紹 基于springbootv…

一站式BI解決方案:從數據采集到處理分析,全面滿足決策支持需求

在數字化浪潮席卷全球的今天&#xff0c;數據已成為企業決策的核心驅動力。然而&#xff0c;面對海量的數據和復雜的分析需求&#xff0c;企業如何高效地收集、整理、分析和利用這些數據&#xff0c;以支持戰略決策和業務優化&#xff0c;成為了一個亟待解決的問題。為了解決這…

AI大模型日報#0626:首款大模型芯片挑戰英偉達、面壁智能李大海專訪、大模型測試題爆火LeCun點贊

導讀&#xff1a;AI大模型日報&#xff0c;爬蟲LLM自動生成&#xff0c;一文覽盡每日AI大模型要點資訊&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;生成了今日要點以及每條資訊的摘要。歡迎閱讀&#xff01;《AI大模型日報》今日要點&#xf…

加班的員工,循環的電池

寧德時代回應"896" 6月17日&#xff0c;寧德時代因內部宣告「實行 895 工作制&#xff0c;大干 100 天&#xff0c;外籍人員不強制」沖上熱搜&#xff0c;雖后來辟謠 只是發出號召&#xff0c;并無強制員工實行"895"工作制&#xff0c;但輿論并無消退。 昨…

上古世紀臺服怎么注冊賬號 上古世紀臺服怎么下載游戲教程

6月27日&#xff0c;上古世紀戰爭臺服新服公測&#xff0c;一款由虛幻4引擎打造的mmorpg游戲&#xff0c;畫面還是非常精美的&#xff0c;并且游戲玩起來也比較輕松&#xff0c;自動戰斗&#xff0c;自動尋路這些功能都有。游戲的新玩法主要是海戰&#xff0c;駕駛艦船在海上作…

Redis數據結構:深入解析跳躍表(Skiplist)

感謝您閱讀本文&#xff0c;歡迎“一鍵三連”。作者定會不負眾望&#xff0c;按時按量創作出更優質的內容。 ?? 1. 畢業設計專欄&#xff0c;畢業季咱們不慌&#xff0c;上千款畢業設計等你來選。 引言 Redis是一款廣泛使用的內存數據結構存儲系統&#xff0c;支持多種數據結…

Java醫院績效考核系統源碼 :3分鐘帶你了解(醫院績效考核系統有哪些應用場景)三級公立醫院績效考核系統源碼

Java醫院績效考核系統源碼 &#xff1a;3分鐘帶你了解&#xff08;醫院績效考核系統有哪些應用場景&#xff09;三級公立醫院績效考核系統源碼 作為醫院用綜合績效核算系統&#xff0c;系統需要和his系統進行對接&#xff0c;按照設定周期&#xff0c;從his系統獲取醫院科室和…

可持續性是 Elastic: 進步與新機遇的一年

作者&#xff1a;來自 Elastic Keith Littlejohns 我們最新的可持續發展報告&#xff08;Sustainability Report&#xff09;總結了 Elastic 又一個令人興奮的進步年&#xff0c;我們的項目繼續揭示新的機遇。過去的一年對于我們與主要利益相關者群體合作以更好地了解他們的目標…

[解決方案]使用微軟拼音打中文卡頓到離譜

去這里看&#xff0c;發現有65535個文件&#xff0c;基本都是臨時文件。刪除后測試了一下&#xff0c;不會卡頓了但是只要打中文還是會瘋狂生成tmp臨時文件。 問題&#xff1a;輸入法不兼容 解決方案 先把上面那個文件夾里的tmp文件全刪了 直接點是&#xff0c;其他的文件會…

【ajax實戰02】數據管理網站—驗證碼登錄

一&#xff1a;數據提交&#xff08;提交手機驗證碼&#xff09; 核心思路整理 利用form-serialize插件&#xff0c;收集對象形式的表單數據后&#xff0c;一并提交給服務器。后得到返回值&#xff0c;進一步操作 基地址&#xff1a; axios.defaults.baseURL http://geek.…