ffmpeg - 具有 LGPL 元素的 gstreamer rtsp 流媒体链

标签 ffmpeg gstreamer

以下链似乎可以很好地流式传输视频:

gst-launch filesrc location=/home/manusha/Downloads/movies/<movie file>.mkv ! decodebin ! ffenc_mpeg4 bitrate=5000000 ! rtpmp4vpay mtu=1400 pt=96 ssrc=0 timestamp-offset=0 seqnum-offset=0 send-config=true ! udpsink host=127.0.0.1 port=5000

该链能够接收流并播放它:
gst-launch udpsrc uri=udp://127.0.0.1:5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d88007d0a041e1463000001b24c61766335322e3132332e30, payload=(int)96, ssrc=(uint)298758266, clock-base=(uint)3097828288, seqnum-base=(uint)63478" ! rtpmp4vdepay ! ffdec_mpeg4 ! autovideosink

我的问题是,ffdec_mpeg4 和 ffenc_mpeg4 都是 GPL 许可的,不适合我的目的,因为我需要重新分发它们。我正在寻找有关只能使用 LGPL 许可元素形成的替代流链的建议。流媒体只能在局域网内使用,但需要支持高清质量的流媒体。

最佳答案

ffdec_mpeg4 和 ffenc_mpeg4 不是严格的 GPL,它们是 GStreamer 的 FFmpeg 插件集(或 Libav)的一部分,并且是 LGPL 子集中的容器。您需要仅使用 LGPL 插件重新编译 gst-libav/gst-ffmpeg(不要使用您的构建可能使用的 configure --enable-gpl),并且您将在 LGPL 许可下获得相同的插件(请参阅config.h 中的 GST_LIBAV_ENABLE_GPL)。

关于ffmpeg - 具有 LGPL 元素的 gstreamer rtsp 流媒体链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31490100/

相关文章:

使用 ffmpeg 转换为 gif 的视频具有框图案背景

c++ - GstCaps过滤器问题

c++ - 使用 gstreamer 将 jpeg 混合到 mkv

java - Android FFMPEG - 未创建输出文件

使用FFMPEG库时编译错误

image - Haskell - 将多个图像转换为视频文件 - ffmpeg-lights 的 frameWriter-function 失败

video - ffplay 使用切换的 -an 和 -vn 选项在 HLS 流媒体上崩溃

ffmpeg - GStreamer 是否在内部使用 ffmpeg 代码?

ffmpeg - gstreamer h264 多播缺少 SPS/PPS 信息

Gstreamer:在 RTP 流中暂停/恢复视频