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.mzph.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.…