Closed philipzae closed 3 years ago
Looking at the logs, we get:
(cawbird:5839): cawbird-CRITICAL **: 14:24:46.384: ../ext/soup/gstsouphttpsrc.c(1431): gst_soup_http_src_parse_status (): /GstPlayBin:video/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source:
Not Found (404), URL: https://video.twimg.com/ext_tw_video/1369800139439824907/pu/pl/MkmkumJVf43dSAx3.m3u8?tag=12&container=fmp4, Redirect to: (NULL)
(cawbird:5839): cawbird-CRITICAL **: 14:24:46.385: ../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPlayBin:video/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source:
streaming stopped, reason error (-5)
(cawbird:5839): cawbird-CRITICAL **: 14:24:46.385: ../plugins/elements/gsttypefindelement.c(987): gst_type_find_element_chain_do_typefinding (): /GstPlayBin:video/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0:
Can't typefind stream
Checking the JSON, that tweet has:
…
"variants" : [
{
"content_type" : "application/x-mpegURL",
"url" : "https://video.twimg.com/ext_tw_video/1369800139439824907/pu/pl/MkmkumJVf43dSAx3.m3u8?tag=12&container=fmp4"
},
{
"bitrate" : 632000,
"content_type" : "video/mp4",
"url" : "https://video.twimg.com/ext_tw_video/1369800139439824907/pu/vid/324x408/jpSIjxWaxRfIMfZz.mp4?tag=12"
}
]
…
I think this is going to be a URL encoding problem. Again.
@j1warren has reported a repeat of this in #384 with https://twitter.com/kola_kolz/status/1402890428601540608
I've just checked the JSON for that tweet. The video options are:
{
"bitrate" : 950000,
"content_type" : "video/mp4",
"url" : "https://video.twimg.com/ext_tw_video/1402890234602344448/pu/vid/480x624/XbEyjIQGn0qE5DmT.mp4?tag=12"
},
{
"bitrate" : 632000,
"content_type" : "video/mp4",
"url" : "https://video.twimg.com/ext_tw_video/1402890234602344448/pu/vid/320x416/16GjmZoyPhBEH27g.mp4?tag=12"
},
{
"content_type" : "application/x-mpegURL",
"url" : "https://video.twimg.com/ext_tw_video/1402890234602344448/pu/pl/U_bT0EuSzMm5JbAe.m3u8?tag=12&container=fmp4"
}
Cawbird will load the last one because its type is application/x-mpegURL
. The ampersand was breaking it until I fixed this bug, and that fix has been released since v1.4.
To debug this more we need to see what GStreamer is doing and whether it is consistent. What do you get when you run gst-play-1.0 "https://video.twimg.com/ext_tw_video/1402890234602344448/pu/pl/U_bT0EuSzMm5JbAe.m3u8?tag=12&container=fmp4"
?
Trying to play this video again can display different error messages. Some appear and change, the latest are either
gstdecodebin2.c(4694): gst_decode_bin_expose (): /GstPlayBin:video/GstURIDecodeBin:uridecodebin11/GstDecodeBin:decodebin11: all streams without buffers
or
gstvideodecoder.c(1138): gst_video_decoder_sink_event_default (): /GstPlayBin:video/GstURIDecodeBin:uridecodebin7/GstDecodeBin:decodebin7/avdec_mpeg2video:avdec_mpeg2video3: no valid frames found
in cli
$ gst-play-1.0 "https://video.twimg.com/ext_tw_video/1402890234602344448/pu/pl/U_bT0EuSzMm5JbAe.m3u8?tag=12&container=fmp4" Press 'k' to see a list of keyboard shortcuts. Now playing https://video.twimg.com/ext_tw_video/1402890234602344448/pu/pl/U_bT0EuSzMm5JbAe.m3u8?tag=12&container=fmp4 ERROR Could not determine type of stream for https://video.twimg.com/ext_tw_video/1402890234602344448/pu/pl/U_bT0EuSzMm5JbAe.m3u8?tag=12&container=fmp4 ERROR debug information: gsthlsdemux.c(840): gst_hls_demux_handle_buffer (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstHLSDemux:hlsdemux0 Reached end of play list.
EXTM3U
EXT-X-VERSION:6
EXT-X-INDEPENDENT-SEGMENTS
EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=632000,BANDWIDTH=632000,RESOLUTION=320x416,CODECS="mp4a.40.2,avc1.4d001e"
/ext_tw_video/1402890234602344448/pu/pl/320x416/rz8wD6fuvjsW1-sx.m3u8?container=fmp4
EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=950000,BANDWIDTH=950000,RESOLUTION=480x624,CODECS="mp4a.40.2,avc1.4d001f"
/ext_tw_video/1402890234602344448/pu/pl/480x624/1aMIbbGS3f38Y_0S.m3u8?container=fmp4
If gst-play can't play it then the problem is with your GStreamer install and not anything that Cawbird can do anything about. If it's intermittent then my best guess is either network problems corrupting the stream or you're hitting different Twitter servers each time and they give slightly different performance.
[Edit] Also, depending on your GStreamer version, it might be the hlsdemux issue that's mentioned in our "known issues" section and fixed in GStreamer 1.18.2
it might be the hlsdemux issue that's mentioned in our "known issues" section and fixed in GStreamer 1.18.2
Could be. Opening the tweet in a browser works.
Firefox has its own MPEG libraries, so if Firefox works but gst-play and Cawbird don't then it's definitely a GStreamer problem. I'm not sure what Chrome uses.
Got this error when trying to play the video in this tweet. https://twitter.com/zamundata/status/1369899185751928834