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"

相关推荐
太空漫步112 小时前
android社畜模拟器
android
海绵宝宝_5 小时前
【HarmonyOS NEXT】获取正式应用签名证书的签名信息
android·前端·华为·harmonyos·鸿蒙·鸿蒙应用开发
凯文的内存6 小时前
android 定制mtp连接外设的设备名称
android·media·mtp·mtpserver
天若子6 小时前
Android今日头条的屏幕适配方案
android
林的快手8 小时前
伪类选择器
android·前端·css·chrome·ajax·html·json
望佑8 小时前
Tmp detached view should be removed from RecyclerView before it can be recycled
android
胖虎18 小时前
深入解析 iOS 视频录制(三):完整录制流程的实现与整合
ios·音视频·cocoa·ios视频录制·自定视频录制
AI服务老曹9 小时前
确保设备始终处于最佳运行状态,延长设备的使用寿命,保障系统的稳定运行的智慧地产开源了
人工智能·开源·云计算·音视频
xvch11 小时前
Kotlin 2.1.0 入门教程(二十四)泛型、泛型约束、绝对非空类型、下划线运算符
android·kotlin
余~~1853816280013 小时前
短视频矩阵碰一碰发视频源码技术开发,支持OEM
网络·人工智能·线性代数·矩阵·音视频