当前位置: 首页 > news >正文

外链推广网站都有哪些网站首页分辨率

外链推广网站都有哪些,网站首页分辨率,冀州网站优化,鲁山网站建设兼职简介 FFmpeg 是一个跨平台的音视频处理工具库/命令行工具,其核心作用是:对音视频文件或流进行解码、转换(编码)、封装/解封装等处理。 友情提示 本次安装以Windows64位操作系统为例 一、下载及安装 1、前往FFmpeg官网&#xff0…

简介
FFmpeg 是一个跨平台的音视频处理工具库/命令行工具,其核心作用是:对音视频文件或流进行解码、转换(编码)、封装/解封装等处理。

友情提示
本次安装以Windows64位操作系统为例

一、下载及安装
1、前往FFmpeg官网,点击下载

这里我们以Windows builds from gyan.dev为例

2、进来以后选择release builds

这边我们选择右边的1或者2都可,选择其一就可以然后shared和不带shared主要区别就是戴shared是把依赖包全部放在lib文件下面然后ffmpeg.exe,ffplay.exe,ffprobe.exe作为可执行文件就可以直接去lib里面调用相应功能,而不带shared的他的ffmpeg.exe,ffplay.exe,ffprobe.exe作为独立的执行的单独模块会在bin得目录下,每个文件就会大一些。这里我们以下载ffmpeg-7.0.2-full_build.7z为例

3、下载解压完成后我们就得到了如下的目录

点击bin目录我们就可以看见那三个主要的文件
二、环境变量设置
1、右击此电脑选择属性

2、选择高级系统设置,选择环境变量

3、在系统变量中选择path进行编辑

4、将bin的路径直接复制过去,然后一定要把所有确定按钮点完

5、检验是否生效
cmd输入ffmpeg -version 如果出现版本号就说明配置成功

三、Java代码中ffmpeg的调用
ffmpeg过于强大,这里咱们就举几个简单例子展示一下ffmpeg的基本功能!
1、获取视频信息

    public static void main(String[] args) {try {// 获取视频信息getVideoInfo("D:/video/lin.mp4");} catch (IOException | InterruptedException e) {e.printStackTrace();}}public static void getVideoInfo(String videoPath) throws IOException, InterruptedException {ProcessBuilder processBuilder = new ProcessBuilder("ffmpeg", "-i", videoPath);Process process = processBuilder.start();process.waitFor();printCommandOutput(process.getErrorStream());}private static void printCommandOutput(InputStream inputStream) throws IOException {InputStreamReader inputStreamReader = new InputStreamReader(inputStream);BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String line;while ((line = bufferedReader.readLine()) != null) {System.out.println(line);}}

首先这里包含了视频的基本信息,路径:'D:/video/lin.mp4' 格式为MP4
Stream #0:00x1表示视频流:
Video: h264 (High) 表示视频流使用的是H.264编码,且为高配置文件。
yuv420p(tv, bt709, progressive) 是视频的像素格式,色域和扫描方式。
544x960 是视频的分辨率。
655 kb/s 是视频流的比特率。
23 fps 是视频的帧率。
23 tbr 是时间基准。
90k tbn 是时间基准。
Stream #0:10x2 表示音频流的信息:
Audio: aac (LC) 表示音频流使用的是AAC编码,低复杂度配置文件。
44100 Hz 是音频的采样率。
mono 表示音频是单声道的。
fltp 是音频样本格式。
48 kb/s 是音频流的比特率。

2、给视频加字幕

    public static void main(String[] args) {try {// 视频添加字幕addSubtitle("D:/video/lin.mp4", "D:/video/lin.srt", "D:/video/lin_with_subtitle.mp4");} catch (IOException | InterruptedException e) {e.printStackTrace();}}public static void addSubtitle(String videoPath, String subtitlePath, String outputPath)throws IOException, InterruptedException {String escapedSubPath = subtitlePath.replace("\\", "\\\\").replace(":", "\\:");// 使用完整FFmpeg命令参数ProcessBuilder processBuilder = new ProcessBuilder("ffmpeg","-i", videoPath,"-vf", "subtitles='" + escapedSubPath + "'", // 用单引号包裹路径"-c:v", "libx264",     // 指定视频编码器"-c:a", "copy",        // 直接复制音频流"-y",                   // 覆盖输出文件outputPath);// 打印实际执行的命令System.out.println("执行命令: " + String.join(" ", processBuilder.command()));Process process = processBuilder.start();printCommandOutput(process.getErrorStream());int exitCode = process.waitFor();if (exitCode == 0) {System.out.println("字幕添加成功!");} else {System.out.println("处理失败,退出码: " + exitCode);}}private static void printCommandOutput(InputStream inputStream) throws IOException {InputStreamReader inputStreamReader = new InputStreamReader(inputStream);BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String line;while ((line = bufferedReader.readLine()) != null) {System.out.println(line);}}

这是一个srt的字幕文件,简单用Windows自带的txt写了一个简单的的srt文件,内容就如上所示

这个就是生成的结果,lin是原视频,lin.srt是字幕文件,lin_with_subtitle是生成后带字幕的文件

上面两个就为原视频带字幕前后的对比了

3、添加水印的操作

    public static void main(String[] args) {try {// 给视频添加水印addWatermark("D:/video/lin.mp4","D:/video/lin.png","D:/video/lin_watermark.mp4");} catch (IOException | InterruptedException e) {e.printStackTrace();}}public static void addWatermark(String videoPath, String watermarkPath, String outputPath)throws IOException, InterruptedException {// 构造FFmpeg命令(支持透明PNG/动态调整位置)ProcessBuilder processBuilder = new ProcessBuilder("ffmpeg","-i", videoPath,          // 输入视频"-i", watermarkPath,      // 输入水印图片"-filter_complex","[1]format=rgba," +                   // 确保水印有透明通道"scale=iw/3:ih/3," +                 // 缩小3倍(iw/3=原宽度÷3)"colorchannelmixer=aa=0.25[wm];" +    // 透明度25%"[0][wm]overlay=25:H-h-25",           // 左下角位置(左边25px,底部25px)"-c:v", "libx264",        // 视频编码"-preset", "fast",        // 编码速度"-crf", "23",             // 画质控制"-c:a", "copy",           // 复制音频流"-y",                     // 覆盖输出outputPath);// 打印实际执行的命令System.out.println("执行命令: " + String.join(" ", processBuilder.command()));Process process = processBuilder.start();printCommandOutput(process.getErrorStream()); // FFmpeg输出到stderrint exitCode = process.waitFor();if (exitCode == 0) {System.out.println("水印添加成功!");} else {System.out.println("处理失败,退出码: " + exitCode);}}private static void printCommandOutput(InputStream inputStream) throws IOException {InputStreamReader inputStreamReader = new InputStreamReader(inputStream);BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String line;while ((line = bufferedReader.readLine()) != null) {System.out.println(line);}}

这里主要除了固定水印位置还可以设置移动水印的效果

好了以上就是全部内容,当然FFmpeg的功能绝对不仅仅于此,还可以对视频音频进行降噪处理、关键帧的提取、Ai集成、滤镜等等。在目前企业中也被广泛应用。只是作者在这里偷个懒~就不全部展示了。

http://www.dtcms.com/a/554025.html

相关文章:

  • 网站查询域名解析用extjs做的网站
  • 【计算机网络】NAT技术深度解析:从原理到NAPT实现的工作机制
  • 外设模块学习(10)——红外避障模块(STM32)
  • 60 d3.js 不能正确展示节点连线, 以及一个基础的demo
  • 优质网站建设是哪家北京论坛网站建设
  • 黑马商城day8-ES01
  • 创意网站建设公司阿里云宝塔面板一键安装wordpress
  • F043 vue+flask天气预测可视化系统大数据(浅色版)+机器学习+管理端+爬虫+超酷界面+顶级可视化水平
  • 电脑无法识别WiFi 7路由器的解决方式
  • 海南网站推广微商目前十大火爆产品
  • Nestjs框架: 微服务架构实践与技术选型指南
  • 网络请求完整指南 - 从原理到实践
  • PHP网站建设项目经验动态wordpress动态主题
  • 企业网站建设项目描述saas小程序开发
  • 各大门户网站怎么做推广如何做网站 优帮云
  • Python在云计算中的应用:AWS Lambda函数实战
  • Spring Cloud OpenFeign进行服务间调用时,传递自定义的请求头信息及报错解决
  • 基于单片机的 AI 智能快递柜设计与实现
  • 【医学影像 AI】视网膜图像多类别分割中的“段内误分类”
  • python3.13安装教程(附安装包),【2025】python3.13安装图文教程
  • 深圳专业建站多少钱线上渠道推广
  • ROS开发中`laser_scan_matcher`节点启动失败问题的分析与解决
  • 南昌装修网站建设菠菜网站的代理怎么做
  • c++调用客户端库与kafka交互
  • 用Liunx service方式管理SuperMap iServer
  • 邢台网站设计哪家专业wordpress主题添加后台设置选项
  • 京东网站建设的策划书如何做120急救网站
  • 佛山新网站建设服务安卓开发是做什么的
  • 普通园区摄像头如何将视频传输至云端平台
  • HDMI接口与串口:核心知识点解析及全方位区别对比