当前位置: 首页 > 知识库问答 >
问题:

FFMPEG流RTSP到RTMP(Youtube)添加徽标

梁烨烨
2023-03-14

要将视频从IP cam流到Youtube,我使用的代码(通过Ubunu):ffmpeg-f lavfi-I anullsrc-rtsp\u transport tcp-Irtsp://user:psw@192.168.0.100:554-tune zerolatency-vcodec libx264-pix\u fmt-c:v copy-c:a aac-strict experimental-f flvrtmp://a.rtmp.youtube.com/live2/-nostdin-nostats/dev/null 2

这是学校的bee项目我有两个摄像头和两条流:https://www.youtube.com/watch?v=ws-VcLXo高

一切都可以,但是...我想知道:1.如何将png标志添加到这个流。我已经尝试了-i /home/user/rvvg_logo_round.png-codec: v libx264-预设超快-filter_complex覆盖和另一种方法但没有结果。2.有时在夜间出现一些问题,视频流停止。如何自动检查进程状态并重新启动流。我已经尝试创建sh文件如http://videos.cctvcamerapros.com/raspberry-pi/ip-camera-raspberry-pi-youtube-live-video-streaming-server.html中所述并放入cron作业,打赌那只是检查一个cam进程。有没有更好的主意?

共有1个答案

戚繁
2023-03-14

自动检查进程状态并在未启动时启动ffmpeg的解决方案。通过以下方式添加cron作业:crontab-e添加行: * * * * * /home/user/start_youtube_stream_cron.sh

#start_youtube_stream_cron.sh:
#!/bin/bash


#BEE OUTSIDE CAMx
SERVICE="ffmpeg"
RTSP_URL="rtsp://user:psw@192.168.0.101:554"
YOUTUBE_URL="rtmp://a.rtmp.youtube.com/live2"
YOUTUBE_KEY="<Youtube secret key 1>"

#BEE INSIDE CAM
RTSP_URL2="rtsp://user:psw@192.168.0.102:554"
YOUTUBE_KEY2="<Youtube secret key 2>"


COMMAND="ffmpeg -f lavfi -i anullsrc -rtsp_transport tcp -i ${RTSP_URL} -tune zerolatency -vcodec libx264 -t 12:00:00 -pix_fmt + -c:v copy -c:a aac -strict experimental -f flv ${YOUTUBE_URL}/${YOUTUBE_KEY} -nostdin -nostats"


COMMAND2="ffmpeg -f lavfi -i anullsrc -rtsp_transport tcp -i ${RTSP_URL2} -tune zerolatency -vcodec libx264 -t 12:00:00 -pix_fmt + -c:v copy -c:a aac -strict experimental -f flv ${YOUTUBE_URL}/${YOUTUBE_KEY2} -nostdin -nostats"


if /usr/bin/pgrep $SERVICE > /dev/null
then
        echo "${SERVICE} is already running."
else
        echo "${SERVICE} is NOT running! Starting now..."
        $COMMAND &
        $COMMAND2 &
fi
 类似资料:
  • 我正尝试从FFMPEG向输出文件添加时间戳,但出现此错误。 我犯错的地方? 感谢所有回复:)

  • 我有一个IP摄像机(Foscam FI9800P)能够发送一个RTSP流(我已经确认使用VLC流工作)。我想把那个摄像头的视频流到YouTube上。 理想的情况下,我想这样做,而不是重新编码的过程中的视频。ffmpeg似乎能够做到这一点,但它有很多选项,我还没有弄清楚它的所有命令行选项。 有什么建议可以让我做这件事吗?

  • 在这一点上,我的解决方案是工作的,但只能作为RTMP,我可以使用URL完美地观看我的流: 但问题是我的LG智能电视使用WebOS不支持RTMP,我真的很想在那里播放我的流。我现在能看到的唯一解决方案是使用HLS。使用HLS也很好,但我需要在打开电视中的HLS流之前执行我的ffmpeg命令,否则它将不会创建在电视上显示流所需的文件。

  • rtmp-rtsp-stream-client-java Sponsored with ��   by Enterprise Grade APIs for Feeds & Chat. Try the Android Chat tutorial �� Library for stream in RTMP and RTSP. All code in Java. If you need a player

  • 所以,我读了这里所有的文章,不幸的是,我似乎找不到我要找的答案。我已经接近了,但某些魔弦暗示了我。 我正在Ubuntu17.10服务器上运行hls直播(nginx)。简而言之,我可以使用以下方法让服务器一次运行一个视频,并使用ffmpeg(带字幕): 但是,我无法找到使用此方法运行播放列表的解决方案。这似乎是不可能的,当我通过sout(内部或外部)尝试vlc时,我发现要么是缓冲区问题,要么是aac

  • 我需要向rtmp流添加时间覆盖,并保存到磁盘。以下管道,没有覆盖,工作正常: 添加timeoverlay(甚至clockoverlay)后,管道不会运行: GST\u DEBUG=3日志添加在末尾。管道图如下所示。 据我所知,在decodebin移交给timeoverlay时,caps谈判存在一些问题。我不知道如何让timeoverlay以管道可以继续多路复用的方式接受或输出数据。任何有助于了解这