×

如何通过FFmpeg一键推流(Windows/Linux通用教程)

hqy hqy 发表于2025-05-18 22:57:33 浏览51 评论0

抢沙发发表评论

前言:

前面文章有手搓一个IPTV-HLS的推流应用,是以自己的服务器来转发视频流,但是如果没有公网或者外网无法访问的情况下如何解决呢?

那么可以选择推流到公共平台。

? 准备工作

1. 安装FFmpeg

    • Windows:下载官方构建版 | 配置环境变量教程
      https://ffmpeg.org/download.html
      配置环境变量,参见文末参考文章1
    • Linux/Debian:
sudo apt update && sudo apt install ffmpeg -y

2. 获取推流地址
RTMP地址格式:
rtmp://ali.push.yximgs.com/live/你的推流ID

?️ Windows推流教程

操作步骤

  1. 打开CMD命令行(Win+R → 输入cmd

    图片


  2. 执行推流命令:

ffmpeg -re -stream_loop -1 -i "你的源头直播源" -c:v copy   -c:a aac -b:a 128k -f flv -y -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 "rtmp://ali.push.yximgs.com/live/某某某"

推流示例(CCTV1直播源)

ffmpeg -re -stream_loop -1 -i "rtsp://123.147.112.17:8089/04000001/01000000004000000000000000000231?AuthInfo=xxx&userid=gf001&userid=gf001" -c:v copy -c:a aac -b:a 128k -f flv -y -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 "rtmp://ali.push.yximgs.com/live/cctv1_cqshushu"

图片

? Linux推流教程(以Debian为例)

安装FFmpeg

sudo apt update && sudo apt install ffmpeg -y

执行与Windows相同的推流命令

图片

? 运行状态确认

成功时显示:

[flv @ 0x55f1a1e3b0] starting upload to rtmp://ali.push.yximgs.com... frame=  120 fps=25 q=-1.0 size=    2560kB time=00:00:04.80 bitrate=4367.8kbits/s speed=   1x

图片

会显示推流时间,比特率等基本信息

? 播放地址生成规则

https://ali.hlspull.yximgs.com/live/你的推流ID.flv

如上面推流命令的播放地址:

https://ali.hlspull.yximgs.com/live/cctv1_cqshushu.flv

图片

⚠️ 重要注意事项

  1. 带宽占用警告 ⚠️
    ? 推流将占用 实际上行带宽,计算公式:
    带宽需求 ≈ 视频码率 + 音频码率
    ? 示例:若视频码率3000kbps + 音频128kbps,需至少 3.1Mbps 稳定上行带宽
    ? 建议:

    • 通过speedtest.net测试实际可用上行带宽
    • 使用-b:v参数控制视频码率(如-b:v 2000k
    • 避免在带宽<5Mbps时推送1080p视频
      以上参考来源于AI,请自行测试
  2. 音频必须转码为AAC格式(快手平台强制要求)

  3. -stream_loop -1参数实现无限循环推流

? 进阶计划

考虑利用DeepSeek手搓一个可视化推流管理系统 :

图片


打赏

本文链接:https://www.kinber.cn/post/5114.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客