FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
接上第一篇基础的几个命令,下面介绍几个看起来比较复杂的
命令示例:
ffmpeg -ss 00:00:00 -i input.mp4 -vcodec copy -acodec copy -t 00:00:31 output.mp4
说明:
该命令的作用是将input.mp4视频按照指定时间剪切,生成一个新的output.mp4视频。其中、
-ss 00:00:00 从制定时间开始转换(如果不加:,则表示为秒,比如-ss 0,表示从第0秒开始剪切)
-t 00:00:31 设置输出的视频时长时间(如果不加:,则表示为秒,比如-t 31,表示时长31秒)
命令示例:
ffmpeg -i input.mp4 -af "volume=enable='between(t,5,10)':volume=0" output.mp4
说明:
该命令的作用是将input.mp4视频按照指定时间静音,生成一个新的output.mp4视频。
volume=enable='between(t,5,10)':volume=0 静音从第5秒到第10秒,这个命令可以写多个,即多处静音,中间逗号隔开。
命令示例:
ffmpeg -i input.mp4 -vf "movie=input.png,colorchannelmixer=aa=0.4,scale=300:300 [watermark]; [in][watermark] overlay" output.mp4
说明:
该命令的作用是将input.mp4视频按照指定命令,打上水印,生成一个新的output.mp4视频。
movie=input.png 水印图片、
colorchannelmixer=aa=0.4 水印透明度(如果不需要更改透明度,则把该段去掉)
scale=300:300 水印的大小(如果用原水印大小,则把该段去掉)
overlay 水印的位置,默认为左上角
overlay=W-w 右上角
overlay=0:H-h 左下角
overlay=W-w:H-h 右下角
ps:如果水印不需要贴边显示,稍微更改W和H的值即可
命令示例:
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4
说明:
该命令的作用是将input.mp4视频按照指定倍速,生成一个新的output.mp4视频。
setpts=0.5*PTS 视频加速(默认为1,现在是0.5。变成2倍速了)
atempo=2.0 音频加速(默认为1,现在是0.5.变成2倍速了)
ps:视频加速和音频加速,倍速需要一致,否则声音视频会不同步
命令示例:
ffmpeg -i input.mp4 -filter_complex "[0:v]crop=w=100:h=100:x=1200:y=0,boxblur=luma_radius=25:luma_power=2[boxblur];0:voverlay=1200:0[vout]" -map "[vout]" -map 0:a -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart output.mp4 -y
说明:
该命令的作用是将input.mp4视频按照指定位置打码,生成一个新的output.mp4视频。
crop=w=100:h=100:x=1200:y=0 wh指的是马赛克的宽高,xy指的是在视频中出现的坐标
overlay=1200:0 覆盖的坐标(这里和上面的xy一致就可以)
命令示例:
ffmpeg -i input.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb -c copy -map 0 -f segment -segment_list output.m3u8 -segment_time 20 %03d.ts
说明:
该命令的作用是将input.mp4视频按照指定大小切片,生成切片的码m3u8视频。
-segment_time 20 单片的大小,可以自己设置
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p
Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption
我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.
我正在尝试使用以下代码通过将ffmpeg实用程序作为子进程运行并获取其输出并解析它来确定视频分辨率:IO.popen'ffmpeg-i'+path_to_filedo|ffmpegIO|#myparsegoeshereend...但是ffmpeg输出仍然连接到标准输出并且ffmepgIO.readlines是空的。ffmpeg实用程序是否需要一些特殊处理?或者还有其他方法可以获得ffmpeg输出吗?我在WinXP和FedoraLinux下测试了这段代码-结果是一样的。 最佳答案 要跟进mouviciel的评论,您需要使用类似pope