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

利用FFMPEG向RTMP服务器连续传输视频文件

许学真
2023-03-14

FFMPEG将RTMP流作为输入或输出处理,并且运行良好。

我想将一些视频(由python脚本管理的动态播放列表)流到RTMP服务器上,我目前正在做一些非常简单的事情:用FFMPEG将我的视频一个接一个地流到RTMP服务器上,但是这会在每次视频结束时导致连接中断,当下一个视频开始时,流就准备好了。

我想流那些视频没有任何连接中断连续,然后流可以被正确地观看。

我使用这个命令将我的视频一个接一个地流到服务器

ffmpeg -re -y -i myvideo.mp4 -vcodec libx264 -b:v 600k -r 25 -s 640x360 \
-filter:v yadif -ab 64k -ac 1 -ar 44100 -f flv \
"rtmp://mystreamingserver/app/streamName"

共有1个答案

施晗昱
2023-03-14

更新(因为我不能删除接受的答案):正确的解决方案是实现一个自定义的demuxer,类似于concat。目前没有其他干净的方法。你得弄脏你的手和代码!

下面是一个丑陋的黑客。这是一个非常糟糕的做法,只是不要!

该解决方案使用concat demuxer,并假设所有源媒体文件使用相同的编解码器。该示例基于MPEG-TS,但对于RTMP也可以这样做。

>

  • 使用以下格式创建一个播放列表文件,其中包含动态播放列表的大量入口点列表:

    文件'item_1.ts'文件'item_2.ts'文件'item_3.ts'[...]文件'item_[ENOUGH_FOR_A_LIFETIME].ts'

    这些文件只是占位符。

    ln-s/path/to/what/to/play/next.ts item_1.ts

    ln-s/path/to/what/to/play/next.ts item2.ts

    ln-s/path/to/what/to/play/next.ts item_3.ts

    开始播放ffmpeg-f concat-i playlist.txt-c复制输出-f mpegts udp:// :

    被愤怒的系统管理员追着骂

  •  类似资料:
    • 我正在发送视频帧的形式的JPEG图像到我的服务器上的RMTP流。在服务器端,我希望将流(ip+端口)连接到ffmpeg,这样它就可以从流中获取图像,并从中创建视频流。 实际上,我的服务器正在监听一个IP和端口来接收帧。这部分完成了。我遇到的问题是如何使用FFMPEG将这些帧转换成视频流。谁能告诉我如何做到这一点吗?我知道是我应该使用的,但我在Google上没有找到它的语法和文档。

    • 我正在开发视频流应用程序,其中我需要捕获前置摄像头视频帧并编码然后传输到另一端,典型的流程是这样的 AVCapture会话- 它工作正常,我已将kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange设置为帧格式。 还可以预览用于显示预览的图层, 当设备方向发生变化时,问题就来了,如果设备从纵向移动到横向,那么在另一端的帧会被旋转90,我希望因为方向在预览层中

    • 问题内容: Tl; Dr-问题: 用Node.js处理将视频文件流传输到html5视频播放器以 使视频控件继续工作 的正确方法是什么 ? 我 认为 这与处理标头的方式有关。无论如何,这是背景信息。代码 有点 冗长,但是非常简单。 客户: 服务器: 但是此方法仅限于大小小于1GB的文件。 流式传输(任何大小)视频文件 通过利用,服务器可以读取流中的文件,而不是一次将其全部读取到内存中。这听起来像做事

    • FFMPEG-Framerate 30-I%1D.PNG-C:V libx264-profile:V high-CRF 10-pix_fmt yuv420p test.mp4 嗨, 我有一个文件夹,里面有一堆png图像:0.png,1.png,2.png……使用上面的代码,我可以将目录中的所有图像转换成一个视频。我想要做的只是将所有图像的一个百分比转换成一个视频。有什么方法我可以指定到ffmpeg

    • 我在尝试连接FFMPEG中的多个文件时遇到了一个问题;我的目标是通过串联不同类型的幻灯片来创建视频演示文稿: (a)图像幻灯片,通过循环帧片刻转换成视频。这些类型的幻灯片没有音频,所以我为它们添加了静音音轨: (b)视频幻灯片,它有一个覆盖的水印,并持续到视频结束。如果文件不包含音频,则添加的方式与前面的情况相同: 因此,一旦我有了所有生成的文件和一个包含所有文件名的。txt文件,我想使用简单的命