ffmpeg读本地mp4文件转换为rtmp

zhang304251004 2023-07-01 01:49:07

我需要通过ffmpeg的api读本地mp4文件(需要循环读,读完这个视频,重新打开这个视频在读),推送到rtmp服务器,主要是保证rtmp的服务器的流不能断。

目前主要的问题是,第一个视频文件Mp4读的Pts,dts正常后,读第二个mp4文件,在推送到rtmp,就会报dts时间错误。

...全文
816 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdspower 2023-09-27
  • 打赏
  • 举报
回复

因为你没有给出你的具体指令,不知道你是怎么具体处理的。

不过需要循环把一个文件推流,应该加上 -stream_loop -1 参数的指定(这里是无限循环),如果需要指定具体次数,把-1改成实际数字即可。

qq_43504527 2023-07-03
  • 打赏
  • 举报
回复

要将本地的MP4文件转换为RTMP流,可以使用FFmpeg命令行工具。下面是一个示例命令来实现这个转换过程:

ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -c:a aac -f flv rtmp://your-rtmp-server-url/your-stream-key
说明:

-re 选项用于告诉FFmpeg以输入文件的速度进行处理,以避免太快或太慢地将媒体发送到RTMP服务器。
-i input.mp4 指定输入的MP4文件路径和文件名。
-c:v libx264 指定视频编解码器,这里使用了H.264编码器。
-preset veryfast 指定视频编码速度,可以根据需要选择不同的预设。
-c:a aac 指定音频编解码器,这里使用了AAC编码器。
-f flv 指定输出格式为FLV。
rtmp://your-rtmp-server-url/your-stream-key 是目标RTMP服务器的URL和流键。
请将 input.mp4 替换为您的本地MP4文件的路径和文件名,并将 rtmp://your-rtmp-server-url/your-stream-key 替换为您的目标RTMP服务器的URL和流键。

执行该命令后,FFmpeg将读取输入的MP4文件并转换为实时流,然后将其发送到指定的RTMP服务器。

寒冰大神 2023-07-01
  • 打赏
  • 举报
回复

jias

2,550

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧