Rongronggg9 / RSS-to-Telegram-Bot

A Telegram RSS bot that cares about your reading experience
https://t.me/RSStT_Bot
GNU Affero General Public License v3.0
1.47k stars 271 forks source link

weibo上live图片订阅过来会变成文件发送方式 #377

Open linzzzzllll opened 9 months ago

linzzzzllll commented 9 months ago

Describe the bug A clear and concise description of what the bug is.

To Reproduce Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior A clear and concise description of what you expected to happen.

Important log You may execute docker logs [container name] to get log. Choose that is important and paste it here.

linzzzzllll commented 9 months ago

weibo上live图片订阅过来会变成文件发送方式

Rongronggg9 commented 9 months ago

The RSS URL to reproduce the issue, plz

linzzzzllll commented 9 months ago

The RSS URL to reproduce the issue, plzRSS网址重现的问题,plz

https://rsshub.app/weibo/user/***** 几乎所有用户都会

Rongronggg9 commented 9 months ago

几乎所有用户都会

我不使用微博,不知道如何寻找最近曾发送过 live photo 的用户用于测试,请提供几个微博用户作为范例。

linzzzzllll commented 9 months ago

weibo上live图片订阅过来会变成文件发送方式

是变成.mov

linzzzzllll commented 9 months ago

几乎所有用户都会

我不使用微博,不知道如何寻找最近曾发送过 live photo 的用户用于测试,请提供几个微博用户作为范例。

https://rsshub.app/weibo/user/6463277233 https://rsshub.app/weibo/user/3636661811

Rongronggg9 commented 9 months ago

已经复现。 这个问题具体是如何引发的,我还没有做验证。live photo 实际上是无音轨的视频。相信是由于 Telegram 会将无音轨视频作为 GIF 发送而触发了 RSStT 的回退逻辑。See also #3.

Telegram 在近期的更新中,允许客户端强制禁止服务端的上述行为。然而,只有客户端上传的视频才能使用这一特性。RSStT 不上传视频,而是请求 Telegram 服务端从网络上拉取视频,因而暂时无法利用这一特性。我会找时间进一步研究有无其他解决方案。

linzzzzllll commented 8 months ago

已经复现。 这个问题具体是如何引发的,我还没有做验证。live photo 实际上是无音轨的视频。相信是由于 Telegram 会将无音轨视频作为 GIF 发送而触发了 RSStT 的回退逻辑。See also #3.

Telegram 在近期的更新中,允许客户端强制禁止服务端的上述行为。然而,只有客户端上传的视频才能使用这一特性。RSStT 不上传视频,而是请求 Telegram 服务端从网络上拉取视频,因而暂时无法利用这一特性。我会找时间进一步研究有无其他解决方案。

live photo 实际上是无音轨的视频"很奇怪在 tg打开是有声音的.?其实作为普通视频发送也可以

Rongronggg9 commented 8 months ago

live photo 实际上是无音轨的视频"很奇怪在 tg打开是有声音的.

我不使用苹果设备,因此先前的断言确实有误。经过查阅资料,live photo 确实是带有录音的。然而,微博发送者可以在发送之前把声音去除,那么就会不带有音轨。

带音轨的例子(含 Audio 和 Video) ```console $ curl -sL 'https://video.weibo.com/media/play?livephoto=https%3A%2F%2Flivephoto.us.sinaimg.cn%2F003xLlRljx088rRQ5uzm0f0f0100eON70k01.mov' | ffprobe -hide_banner - Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'fd:': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt creation_time : 2023-09-08T13:35:53.000000Z com.apple.quicktime.creationdate: 2023-09-08T19:33:04+0800 com.apple.quicktime.content.identifier: 32BE8D2F-36B1-4A6B-B939-0F8FD210CC5E com.apple.quicktime.make: Apple com.apple.quicktime.model: iPhone 12 Pro Max com.apple.quicktime.software: 16.6 Duration: 00:00:02.04, start: 0.000000, bitrate: N/A Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 221 kb/s (default) Metadata: creation_time : 2023-09-08T13:35:53.000000Z handler_name : Core Media Audio vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709, progressive), 1614x1306, 13597 kb/s, 20.08 fps, 27.42 tbr, 600 tbn (default) Metadata: creation_time : 2023-09-08T13:35:53.000000Z handler_name : Core Media Video vendor_id : [0][0][0][0] encoder : H.264 Side data: displaymatrix: rotation of -90.00 degrees Stream #0:2[0x3](und): Data: none (mebx / 0x7862656D), 0 kb/s (default) Metadata: creation_time : 2023-09-08T13:35:53.000000Z handler_name : Core Media Metadata Stream #0:3[0x4](und): Data: none (mebx / 0x7862656D), 43 kb/s (default) Metadata: creation_time : 2023-09-08T13:35:53.000000Z handler_name : Core Media Metadata Unsupported codec with id 0 for input stream 2 Unsupported codec with id 0 for input stream 3 ```
无音轨的例子(只有 Video) ```console $ curl -sL 'https://video.weibo.com/media/play?livephoto=https%3A%2F%2Flivephoto.us.sinaimg.cn%2F000aoR5Djx08aCH5dGrK0f0f0100iseN0k01.mov' | ffprobe -hide_banner - Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'fd:': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt creation_time : 2023-12-02T01:55:19.000000Z com.apple.quicktime.creationdate: 2023-10-26T19:39:55+0800 com.apple.quicktime.content.identifier: BC8C1991-E68C-4B74-B9EB-57F5B8278FD6 com.apple.quicktime.make: Apple com.apple.quicktime.model: iPhone 15 Pro Max com.apple.quicktime.software: 17.0.3 Duration: 00:00:02.95, start: 0.000000, bitrate: N/A Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709, progressive), 1920x1440, 11938 kb/s, 14.26 fps, 22.42 tbr, 600 tbn (default) Metadata: creation_time : 2023-12-02T01:55:19.000000Z handler_name : Core Media Video vendor_id : [0][0][0][0] encoder : H.264 Side data: displaymatrix: rotation of -90.00 degrees Stream #0:1[0x2](und): Data: none (mebx / 0x7862656D), 0 kb/s (default) Metadata: creation_time : 2023-12-02T01:55:19.000000Z handler_name : Core Media Metadata Stream #0:2[0x3](und): Data: none (mebx / 0x7862656D), 43 kb/s (default) Metadata: creation_time : 2023-12-02T01:55:19.000000Z handler_name : Core Media Metadata Unsupported codec with id 0 for input stream 1 Unsupported codec with id 0 for input stream 2 ```

然而,似乎 Telegram 服务端从网络上拉取视频时,无法正确处理 quicktime 容器(正是 live photo 所使用的媒体容器)。无论有无音轨,它都无法正确提取视频元数据。这种情况下,确实无法直接作为视频发送。

使用一个有音轨的 live photo 进行测试: (如果 Telegram 服务端能够提取到视频元数据的话,这里会出现视频宽高和时长)

普通的客户端可以发送这样的视频,应该是由于视频元数据已经在本地预先被提取出来并传送给服务端。然而要 RSStT 做到这一点是复杂的,这意味着 RSStT 必须下载视频、提取元数据、然后上传。

Rongronggg9 commented 8 months ago

看起来 wistia.com 可以用来做在线转码,这可能能够用于蜿蜒实现上述功能。