push_cloudflare.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/bin/bash
  2. # 推流到 Cloudflare Stream
  3. RTSP_SOURCE="rtsp://localhost:8554/camera1"
  4. VIDEO_SOURCE="$(dirname "$0")/videos/3.mp4"
  5. CLOUDFLARE_URL="rtmps://live.cloudflare.com:443/live/0a37e82197ac851a92dc5451dfe78485kb51e49994b6fd9e56b6f1fdfcd339fe6"
  6. echo "开始推流到 Cloudflare Stream..."
  7. echo "源: $VIDEO_SOURCE"
  8. echo "按 Ctrl+C 停止推流"
  9. echo ""
  10. ffmpeg \
  11. -rtsp_transport tcp \
  12. -i "rtsp://admin:Wxc767718929@192.168.0.64:554/Streaming/Channels/101" \
  13. -map 0:v:0 -map 0:a? \
  14. -c:v libx264 \
  15. -preset veryfast \
  16. -tune zerolatency \
  17. -profile:v baseline \
  18. -level 3.1 \
  19. -pix_fmt yuv420p \
  20. -g 30 -keyint_min 30 \
  21. -b:v 2500k -maxrate 2500k -bufsize 5000k \
  22. -c:a opus -strict -2 -ar 48000 -b:a 128k \
  23. -f whip "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/8c108b4025d3278b188b443e8a6c5503kb51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish" \
  24. -headers "Authorization: Bearer ZrpMoQ15dCCe6rX0pKINzcb0eNdakSih-TmQrbq-"
  25. # 使用本地视频文件推流(循环播放)
  26. # ffmpeg -re -stream_loop -1 \
  27. # -i "$VIDEO_SOURCE" \
  28. # -c:v libx264 \
  29. # -preset veryfast \
  30. # -tune zerolatency \
  31. # -profile:v baseline \
  32. # -level 3.1 \
  33. # -g 60 -keyint_min 60 \
  34. # -pix_fmt yuv420p \
  35. # -c:a aac -ar 48000 -b:a 128k \
  36. # -f flv \
  37. # "$CLOUDFLARE_URL"
  38. # 方案2: 使用 WHIP (需要 FFmpeg 6.1+ 且编译了 WHIP 支持)
  39. # ffmpeg -rtsp_transport tcp \
  40. # -i "$RTSP_SOURCE" \
  41. # -c:v libx264 \
  42. # -preset veryfast \
  43. # -tune zerolatency \
  44. # -profile:v baseline \
  45. # -level 3.1 \
  46. # -g 30 -keyint_min 30 \
  47. # -pix_fmt yuv420p \
  48. # -c:a aac -ar 48000 -b:a 96k \
  49. # -f whip "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/8c108b4025d3278b188b443e8a6c5503kb51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish" \
  50. # -headers "Authorization: Bearer ZrpMoQ15dCCe6rX0pKINzcb0eNdakSih-TmQrbq-"