android利用FFmpeg进行视频转换

news/2024/7/10 18:55:50 标签: android, ffmpeg, 音视频

大致思路:首先安装FFmpeg库到windows电脑上,先测试命令行工具是否可以使用(需要先配置环境),之后再集成到android程序中。

一些命令:

  • 转化为流文件:

ffmpeg -i input.mp4 -codec copy -bsf:v h264_mp4toannexb -f mpegts output.ts

  • 转化为流并推流:

ffmpeg -i 5.mp4 -c:v libx264 -preset veryfast -tune zerolatency -an -f mpegts udp://127.0.0.1:1234
//
-c:v libx264 -preset veryfast -tune zerolatency 指定了编码器的参数,这些参数让编码器尽量减小延迟,以达到更好的实时性;
-an 告诉 FFmpeg 不要包含音频流
-f mpegts 指定了输出格式为 MPEG-TS;
udp://127.0.0.1:1234 指定了发送 UDP 数据包的目标地址和端口。

TS(Transport Stream)流和 PS(Program Stream)流是两种常见的音视频传输格式,它们在一些特性和应用场景上有所不同。
主要区别如下:
封装方式:TS 流采用了更加复杂的封装方式,可以同时封装多个音视频流和其他数据流。每个 TS 包固定大小为188字节,包含了包头和有效负载,有效负载中包含了音视频数据。而 PS 流则是将多媒体数据打包成一个整体,每个包有自己的帧头信息。
多路复用:TS 流支持高级别的多路复用,可以同时传输多个节目或流。每个节目或流都有其独立的 PID(Packet Identifier)来进行标识和分配。而 PS 流只能封装单个节目。
容错性:由于 TS 流采用了针对传输过程中的错误纠正和恢复的技术,因此具有较好的容错性,对于信号干扰或传输错误有一定的抵抗能力。相比之下,PS 流的容错性较差。
编辑和处理:由于 PS 流中每个包都有独立的帧头信息,这使得它对于编辑和处理操作更加方便,例如剪切、拼接等。而 TS 流则需要在包层级进行处理。
应用场景:TS 流常用于数字电视广播、IPTV、卫星传输等需要支持多路复用和实时传输的领域。而 PS 流主要应用于 DVD、蓝光光盘等存储介质中。
需要根据具体的应用场景和需求选择合适的流格式。对于实时传输和多路复用需求较高的情况,TS 流是一个更好的选择。而对于编辑和处理操作较多的情况,PS 流更加适用。


使用FFmpeg可以将视频文件转换为流数据,常见的有以下几种方式:
使用RTMP协议输出:通过FFmpeg的命令行工具,可以将视频文件通过RTMP协议推送到支持RTMP协议的服务器上,实现实时直播或点播。示例命令为:
ffmpeg -re -i input.mp4 -f flv rtmp://your-server-address
将视频提取为HLS流:使用FFmpeg将视频文件处理为HLS(HTTP Live Streaming)流,以便在网络上进行实时流媒体传输。HLS流数据可以在多个平台上播放,例如iOS和Android设备等。示例命令为:
ffmpeg -i input.mp4 -codec copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls output.m3u8
该命令表示将 input.mp4 转换为 output.m3u8 和一系列ts流文件,hls_time参数表示每个ts流文件的长度,单位为秒。
将视频转换为MPEG-TS流:使用FFmpeg将视频文件转换为MPEG-TS(Transport Stream)格式的流数据。MPEG-TS是广播、电视等领域常用的传输协议,可支持高清视频和多声道音频。示例命令为:
ffmpeg -i input.mp4 -codec copy -bsf:v h264_mp4toannexb -f mpegts output.ts
该命令将 input.mp4 转换为 MPEG-TS 格式的流数据,并输出到 output.ts 文件中。


ffmpeg -re -i output.mp4 -c:v copy -c:a copy -f mpegts udp://127.0.0.1:1234"


http://www.niftyadmin.cn/n/5113888.html

相关文章

居民小区电动汽车有序充电策略研究

摘 要:针对电动汽车在居民小区无序充电对电网系统产生严重隐患及充电间时过长问题,提出一种采用延迟充电的电动汽车有序充电控制策略,并在分析国内外电动汽车有序充电的研究现状后,设计了居民小区电动汽车有序充电策略的总体框架。…

嵌入式硬件中常见的100种硬件选型方式

1请列举您知道的电阻、电容、电感品牌(最好包括国内、国外品牌)。 电阻: 美国:AVX、VISHAY 威世 日本:KOA 兴亚、Kyocera 京瓷、muRata 村田、Panasonic 松下、ROHM 罗姆、susumu、TDK 台湾:LIZ 丽智、PHY…

轻松合并Excel工作表:Java批量操作优化技巧

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 在Excel中设计表单时,我们经常需要对收集的信息进行统计分析。例如&a…

C++对象模型(19)-- 函数语义学:成员函数

1、普通成员函数的调用 1.1 调用方式的转换 为了提高普通成员函数的调用效率,在C中,对普通成员函数的调用,会转换成对全局函数的调用。 假如有下面所示的成员函数: class Test { public:int m_i;int func(int a) {m_i a;retu…

摩尔信使MThings的报文管理功能

设备通信过程中,通道报文是关键调试信息。为了高效地辅助调试运维过程,摩尔信使MThings提供报文记录功能,支持丰富且友好的方法进行报文管理,包括:收发颜色标记、异常识别、通道过滤、支持Modbus全系列; 查…

ASP.NET Core 中的五种过滤器

ASP.NET Core 中的五种过滤器 前言一、过滤器介绍1.五种过滤器(1)IActionFilter(2)IAuthorizationFilter(3)IExceptionFilter(4)IResourceFilter(5)IResultFi…

vscode类似GitHub Copilot的插件推荐

由于GitHub Copilot前段时间学生认证的账号掉了很多,某宝激活也是价格翻了几倍,而却,拿来用一天就掉线,可以试试同类免费的插件哦。 例如:TabNine,下载插件后,他会提示你登录,直接登…

【GIS前言技术】到底什么是实景三维?

文章目录 什么是实景三维?实景三维是怎么制作的?实景三维有哪些应用? 什么是实景三维? 实景三维是客观真实反映现实世界的三维模型,具有单体化、实体化、结构化、语义化的特点,通过融合模型三维、倾斜三维…