小编lig*_*t01的帖子

GStreamer安装缺少插件

我希望有人可以帮助解决这个问题,过去 2 天一直在寻找解决方案。

简而言之:我正在尝试制作一个简单的 qt5.7 应用程序,它将流式传输 m3u8(使用 Qt Creator(社区)。但是当我尝试运行它时,我得到了一个

Warning: "No decoder available for type 'application/x-hls'."
Error: "Your GStreamer installation is missing a plug-in."
Run Code Online (Sandbox Code Playgroud)

“gst-inspect | grep hls”返回:typefindfunctions:application/x-hls:m3u8

在这一点上,我不知道我什至会错过哪个插件,因为我已经浏览了完整的 GStreamer 插件列表并一个接一个地放置。就我的搜索而言,有些人通过安装坏/丑陋的插件得到了修复。有人说 QT5 仍然使用 gstreamer0.10,但新的 linux 版本使用 1.0(此时已丢失)。我试图设置一个标志来强制 GST_VERSION=1.0,没有工作,或者我做错了什么(我使用了 qmake GST_VERSION=1.0 命令)。另外,我可以在 vlc 中播放视频。我完全卡住了,不知道该怎么办了。

应用程序代码:

import QtQuick 2.7
import QtQuick.Window 2.2
import QtMultimedia 5.7

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Item {
        width: 640
        height: 480

        MediaPlayer {
            id: player
            source: "http://playertest.longtailvideo.com/adaptive/wowzaid3/chunklist_w249832652.m3u8"
        }

        VideoOutput {
            anchors.fill: …
Run Code Online (Sandbox Code Playgroud)

linux qt gstreamer qml m3u8

8
推荐指数
2
解决办法
9099
查看次数

如何使用 ffmpeg 将 mp4 转换为 HLS 并将字幕添加到主播放列表

我正在尝试ffmpegmp4文件转换HLSmaster playlist.

我设法让它创建index_vtt.m3u8包含字幕的文件,但它不想将流添加到master playlist. 我是新手,所以我不完全理解整个 ffmpeg 是如何工作的(我主要只是尝试我在网上找到的一堆资源)

我正在使用以下命令:

../ffmpeg-4.2.1/ffmpeg -i ../input.mp4 -i ../subtitile.vtt -c:s webvtt -profile:v baseline -level 21 -s 1280x720 -start_number 0 -hls_playlist_type vod -hls_time 10 -hls_list_size 3 -f hls -master_pl_name master.m3u8 index.m3u8`
Run Code Online (Sandbox Code Playgroud)

它产生 master.m3u8

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=140800,RESOLUTION=1280x720,CODECS="avc1.42c015,mp4a.40.2"
index.m3u8
Run Code Online (Sandbox Code Playgroud)

我可以在 vlc 中播放它,但它无法识别任何字幕。然后我修改master.m3u8它看起来像这样:

#EXTM3U
#EXT-X-VERSION:6

#EXT-X-MEDIA:TYPE=SUBTITLES,URI="index_vtt.m3u8",GROUP-ID="default-text-group",LANGUAGE="hr",NAME="Croatian",AUTOSELECT=YES

#EXT-X-STREAM-INF:BANDWIDTH=140800,RESOLUTION=1280x720,CODECS="avc1.42c01e,mp4a.40.2",SUBTITLES="default-text-group"
index.m3u8
Run Code Online (Sandbox Code Playgroud)

一切都很好。我怎么能告诉ffmpeg我为我做这件事?

ffmpeg

8
推荐指数
1
解决办法
1010
查看次数

标签 统计

ffmpeg ×1

gstreamer ×1

linux ×1

m3u8 ×1

qml ×1

qt ×1