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

Java 海康录像机通过sdk下载的视频无法在线预览问题

下载的视频格式不对,需将视频转码为H.264/AAC的MP4格式

 使用 ffmpeg 对视频进行转码

ffmpeg可以对视频进行转码、加水印等操作,还是挺强大的

 代码如下

public static void transcodeToMP4(String inputPath, String outputPath) throws IOException, InterruptedException {// FFmpeg命令:将视频转码为H.264/AAC的MP4格式String[] command = {ffmpegEXE,"-i", inputPath,"-c:v", "libx264",          // 视频编码器"-preset", "fast",         // 编码速度与压缩率平衡"-crf", "23",             // 质量参数(18-28,值越小质量越高)"-c:a", "aac",             // 音频编码器"-b:a", "128k",            // 音频比特率"-movflags", "+faststart", // 使视频支持流式播放"-y",                      // 覆盖输出文件outputPath};ProcessBuilder pb = new ProcessBuilder(command);pb.inheritIO(); // 继承当前进程的IO,方便查看输出Process process = pb.start();process.waitFor();}

ffmpegEXE:下载的ffmpeg的可执行文件exe的全路径

 

FFmpeg 是一个功能极其强大的开源多媒体处理工具,几乎可以处理所有与音视频相关的任务。以下是它能做的核心功能分类,附典型命令示例:


1. 视频处理

功能命令示例(经典场景)
格式转换ffmpeg -i input.avi output.mp4
视频压缩ffmpeg -i input.mp4 -crf 23 compressed.mp4(CRF值越小质量越高)
提取所有帧ffmpeg -i input.mp4 frame_%04d.png
调整分辨率ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
裁剪视频区域ffmpeg -i input.mp4 -vf "crop=w=800:h=600:x=100:y=50" output.mp4
加速/减速视频ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" 2x_speed.mp4(0.5倍速)
去除水印ffmpeg -i input.mp4 -vf "delogo=x=100:y=50:w=200:h=100" clean.mp4
视频反交错ffmpeg -i interlaced.mp4 -vf yadif deinterlaced.mp4

2. 音频处理

功能命令示例
提取音频ffmpeg -i video.mp4 -vn -c:a libmp3lame audio.mp3
合并音视频ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac output.mp4
音频降噪ffmpeg -i noisy.mp3 -af "afftdn=nf=-20dB" clean.mp3
切割音频片段ffmpeg -i song.mp3 -ss 00:01:30 -to 00:02:30 clip.mp3
转换采样率ffmpeg -i input.wav -ar 44100 output.wav

3. 直播与流媒体

功能命令示例
RTMP推流ffmpeg -i input.mp4 -c:v libx264 -f flv rtmp://server/live/stream_key
HLS切片ffmpeg -i input.mp4 -c:v h264 -hls_time 10 -hls_list_size 0 playlist.m3u8
拉取直播流保存ffmpeg -i http://live.server/stream.m3u8 -c copy output.mp4
RTSP转RTMPffmpeg -i rtsp://cam_ip/live -c:v copy -c:a aac -f flv rtmp://server/stream

4. 高级特效

功能命令示例
画中画ffmpeg -i main.mp4 -i pip.mp4 -filter_complex "[1]scale=320:-1[small];[0][small]overlay=x=10:y=10" output.mp4
绿幕抠像ffmpeg -i green_screen.mp4 -vf "chromakey=0x00FF00:0.1" output.mp4
添加字幕ffmpeg -i video.mp4 -vf "subtitles=sub.srt" output.mp4
生成动态缩略图ffmpeg -i video.mp4 -vf "fps=1/10,scale=320:-1" thumb_%03d.jpg

5. 设备采集

功能命令示例(不同系统)
录屏(Linux)ffmpeg -f x11grab -s 1920x1080 -i :0.0 screen.mp4
录屏(macOS)ffmpeg -f avfoundation -i "1:0" screen.mp4
录屏(Windows)ffmpeg -f gdigrab -i desktop screen.mp4
摄像头录制ffmpeg -f v4l2 -i /dev/video0 camera.mp4

6. 元数据操作

功能命令示例
查看媒体信息ffmpeg -i input.mp4
修改元数据ffmpeg -i input.mp4 -metadata title="New Title" output.mp4
删除元数据ffmpeg -i input.mp4 -map_metadata -1 clean.mp4

相关文章:

  • 多旋翼无人机架空输电线路自动化巡检方案
  • 如何使用AI为WordPress生成图片
  • 如何使用Selenium进行网页自动化?
  • Linux系统管理与编程16番外篇:PXE自动化安装部署OpenEuler24.03LTS
  • 案例分享——福建洋柄水库大桥智慧桥梁安全监测
  • 【Harmony】【鸿蒙】List列表View如果刷新内部的自定义View
  • Flannel后端为UDP模式下,分析数据包的发送方式——tun设备(三)
  • 基于企业数字化转型战略的数据治理方法论与顶层设计思路
  • list(c++)
  • BadSuccessor漏洞:未修复的微软Active Directory攻击可导致域控沦陷
  • 基于STM32F4的cubemx关于RTC配置说明
  • 参与开发的注意事项
  • 手写Tomcat(二)—Tomcat简化模型架构
  • 第六部分:第六节 - TypeScript 与 NestJS:打造类型安全的厨房管理流程
  • echarts 空心饼图,内说明文字居中
  • 已经 上线 Vue 项目 国际化 i18n 中译英
  • CVE-2022-22947源码分析与漏洞复现
  • Python应用“关键字”初解
  • 车载以太网网络测试-27【SOME/IP-SD简述】
  • MAX96752FGTN/V+T:双LVDS(OLDI)输出的GMSL2解串器架构与应用探讨——汽车与工业视频传输方案深度分析
  • 网站开发后台 amp/网络营销学什么
  • 嘉兴网站建设网站/郑州官网网站优化公司
  • 挂马网站教程/广州seo公司
  • wordpress居中/开鲁网站seo转接
  • 公司网站彩页怎么做/雅虎搜索引擎
  • 免费源码html网站/短视频seo