视频技术 way to explore https:https://cdn.v2ex.com/navatar/285e/19f2/503_normal.png?m=1589320132 https:https://cdn.v2ex.com/navatar/285e/19f2/503_large.png?m=1589320132 2025-08-26T07:08:37Z Copyright © 2010-2018, V2EX 求一个最完美的 vps 挂载团队盘最优方案,例如 rclone 挂载参数。 tag:www.v2ex.com,2025-08-26:/t/1155031 2025-08-26T06:39:40Z 2025-08-26T07:08:37Z kingsnakerrrrr member/kingsnakerrrrr 开服很多都用团队盘,不知道他们怎么优化。库比较多需要优化缓存,加载速度什么的。不懂搞

]]>
关于用电报当作流媒体视频备份库,可以在线播放与分享的方案,以及视频压制的流程 tag:www.v2ex.com,2025-08-02:/t/1149413 2025-08-02T00:18:56Z 2025-08-02T01:30:58Z xmz8888 member/xmz8888 1.PC 端通过油管视频的解析网站下载到最高分辨率的 VP9 视频文件+音频文件,然后自己手动封装一下变成 MKV (不过如果选择去使用安卓手机端的某 f 应用商店的那个某 S 解析下载 app 倒是功能齐全,可以同时包办转码和封装)

2.(本人对视频编码并无深入研究,欢迎提供设置建议) PC 端使用的韩国开发者那个简易的某 S 编码封装转换软件,设置如下: 档案格式 MP4 带时间戳,编码 h264 用 cpu 压制;量化器 23 ,设定档选择了 main ,auto + 快速解码,速度选择了“非常快”;音频编码 HE-AAC 直接选择最高 kbps ,声道取样率保持不变与源文件相同;视频的分辨率及帧率通常会选择保持不变与源文件相同。 我个人通常会选择把视频的整体速度变更为 2 倍速,视频的时长直接缩短了一半,而且这样以后谁也不用去手动调整 2 倍速了。

3.以上设置的效果:例如原本 20 分钟的视频,二倍速就是 10 分钟。20 分钟 700 多 MB 的 4K 视频压制出来变为了 10 分钟 300 多 MB 的文件体积。 只要不是多年前的旧 cpu ,压制用时应该一般是 5 分钟左右。完全不耽误用电脑,去喝口水上个厕所就压制完了。

4.最后选择以视频的形式上传到自己的电报频道。 上述举例的 300 多 MB 的视频在桌面端上传并没有被电报服务器自动再次压制,文件体积没有变,经测试在安卓端与苹果端在线播放均正常。 (尊贵的电报会员可以享受更快的上传速度,同时使用网页端要比使用桌面端的上传速度更快,不过只有几百 MB 的文件本来一会就上传完了也无所谓了)

]]>
用 google 的 veo 3 生成带声音的 ai 视频大几刀? tag:www.v2ex.com,2025-07-01:/t/1142225 2025-07-01T05:11:20Z 2025-07-06T12:54:26Z chuhaitian member/chuhaitian 去一个大站试了下用 veo 3 生成带声音的视频,粗略估算了下,需要 8-10 刀的样子....

这个成本还真不如去闲鱼这个人来帮忙出视频

朋友推荐了个有意思的网站( https://v03ai.com ),很便宜只要 0.5 刀就能出一个 veo 3 视频

不知道他们真是送福利还是说有什么特殊技术手段做到这么低成本的。

]]> DJI Action 被自动分段的视频如何无痕拼接 tag:www.v2ex.com,2025-06-02:/t/1135881 2025-06-02T13:13:23Z 2025-06-04T18:07:25Z zzzain46 member/zzzain46 有平替 剪映 app 智能扣视频背景 功能吗? tag:www.v2ex.com,2025-04-08:/t/1123992 2025-04-08T08:24:10Z 2025-04-08T11:11:36Z wnpllrzodiac member/wnpllrzodiac 如题,其他功能都很好,有大量免费的素材和工具。 但是智能抠视频背景功能需要 vip ,有点尴尬。有什么办法用其他软件生成扣除背景的视频,导入剪映里面用吗? 音视频开发多年,感觉前后景分离的视频没有行业规范。所以是在非线编软件里面 逐帧操作的? 不知道有没有这样的视频交换格式,用来在不同软件间传输。

]]>
监控视频压缩/抽帧压缩存储优化 tag:www.v2ex.com,2025-04-07:/t/1123633 2025-04-07T01:57:48Z 2025-04-07T01:57:48Z huazhaozhe member/huazhaozhe 用 FFmpeg 按照 1 秒抽 2 帧变成 2fps 的视频时长和原视频时长一样声音也正常,体积确实减少了不少但还不够,我试着将抽到的帧重新输出为 60fps 的视频,总帧数不变时长自然大大缩短就像倍速播放一样,体积还能减少一半多但是声音不正常了。
有没得办法在总帧数差不多情况下,不考虑播放是否连贯哪怕像 PPT 一样都行,低帧率 2fps 情况下和 60fps 一样体积大小呢,这样子视频时长不变声音也正常,问了 deepseek 貌似和 IPB 帧没搞出来。 ]]>
有什么视频扣像的软件可以推荐 tag:www.v2ex.com,2025-03-15:/t/1118614 2025-03-15T03:58:40Z 2025-03-15T16:00:18Z ilook member/ilook 希望把视频里的主体扣出来,其他部分可以用绿色填充,作为一个新的视频。最好是本地可以运行的服务或软件

]]>
帧转视频有哪些最快的方案? tag:www.v2ex.com,2025-03-13:/t/1118171 2025-03-13T07:32:50Z 2025-03-13T09:32:50Z Haku member/Haku 程序上,是给出一些动画帧,将它们合成为视频,并配上语音。 例如语音 5s ,动画帧 10 帧,那么就是每帧持续 0.5s ,用 10 帧扩充为 5s 的视频并加上音轨。同时可能会有一些画中画的需求。

目前在 Python 上使用 moviepy 来做,合成一段 50s 的视频+配音,如果没有画中画大约 120s 左右(全程画中画大概翻倍),如果动画帧多些可能 150s 的样子。 但是领导不满意,想要把这个时间压缩下来,用他的话说最好十几秒就合成完毕。本人没咋做过视频编解码的活,来问问 V2EX 的老哥们还有啥提速方案。

查了下 moviepy 底层用的是 ffmpeg ,貌似这个已经是很高效的视频编解码技术了。 使用的机器没有专业显卡卡,但是可以申请到 AI 卡比如 T4 ,不知道能不能加速点。

]]>
AV1 和 H265 需要多大码率才能达到 90Mbps 的 H264 水平?可以简单换算吗? tag:www.v2ex.com,2025-03-08:/t/1116887 2025-03-08T07:15:12Z 2025-03-21T11:55:56Z dcsuibian member/dcsuibian 硬盘空间快不够了,在考虑降低一下新录视频的码率。

目前 YouTube 对 4K 60p HDR 的建议上传码率是 66-85Mbps ,但是是针对 H264 的。我希望视频的画质不要降低到这个标准以下。

已经问过 AI 了,说是 AV1 45Mbps ,H265 54Mbps ,但是这种属于经验值吧,还是想听听专家的意见。另外 AV1 有啥坑吗?

]]>
直播录制视频中连麦/Pk 画面移除 tag:www.v2ex.com,2025-02-05:/t/1109074 2025-02-05T06:42:41Z 2025-02-05T09:21:50Z ariera member/ariera 求助,在录制 D 音等直播平台的视频时,有些主播之间的连麦画面想剔除掉,有什么自动化的工具或者程序包么?我试了一下 ffmpeg ,只能手动指定截取开始时间和时长这种方式,不能智能识别裁剪的起始位置和时长。 好比说一个视频中 有两个连麦画面,我需要手动找到这两个连麦画面的起始和终止点,然后剪切后拼接在一起。

有什么自动化的方式能够实现么,网上也找了一段 OpenCV 的代码,感觉效率低,而且通过画面中出现的人物数量判断太潦草了,甚至不如通过判断视频下面是否有黑边什么的更合理。

]]>
如何比较视频压缩前后的画质? tag:www.v2ex.com,2024-12-22:/t/1099457 2024-12-22T14:17:58Z 2024-12-21T22:16:58Z JiaNa member/JiaNa
1. 技术指标有哪些?通过 ffmpeg 得到的 SSIM 、VMAF 不准确。压缩为 2Mbps 后画面模糊,但 SSIM 为 0.95 、VMAF 为 85 。
2. 哪些方法能辅助肉眼比较?比如放大、通过剪辑软件分屏播放。最好有视频教程 ]]>
优酷 Win 客户端不支持臻享 tag:www.v2ex.com,2024-12-20:/t/1099072 2024-12-20T06:42:46Z 2024-12-20T15:00:42Z CharlesZ member/CharlesZ 如题,如果这个片源在优酷没有 4K ,那 Windows 客户端只能看 720p 。 然而 M1 Mac 可以解码臻享并正常播放。

感觉莫名其妙的,会员也不是没花钱,还分设备歧视。

]]>
奇怪的 chrome 视频解码问题 tag:www.v2ex.com,2024-11-26:/t/1092843 2024-11-26T09:36:32Z 2024-12-02T17:12:00Z n18255447846 member/n18255447846

来源于 b 站的 banner 。

貌似 chrome 解码.webm格式的视频是软解,cpu 飙高风扇狂转,而解码.mp4却是硬件解码。二者视频 codec 一致,只是封装后缀不一样。。。

Input #0, matroska,webm, from 'a6f3f362-14c3-4dfd-8801-d69e8547a529.webm': Metadata: encoder : libwebm-0.2.1.0 creation_time : 2024-09-25T18:16:52.000000Z Duration: 00:00:01.58, start: -0.007000, bitrate: 331 kb/s Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv), 3200x300, SAR 1:1 DAR 32:3, 12 fps, 12 tbr, 1k tbn (default) Metadata: alpha_mode : 1 Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default) 

转下面.mp4硬解

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'a.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf61.3.100 Duration: 00:00:01.60, start: 0.000000, bitrate: 227 kb/s Stream #0:0[0x1](eng): Video: vp9 (Profile 0) (vp09 / 0x39307076), yuv420p(tv), 3200x300, 220 kb/s, SAR 1:1 DAR 32:3, 12 fps, 12 tbr, 16k tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1[0x2](eng): Audio: opus (Opus / 0x7375704F), 48000 Hz, stereo, fltp, 1 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] 
]]>
阿里云视频播放问题:大视频只播放几秒后,不继续请求分片 tag:www.v2ex.com,2024-11-21:/t/1091489 2024-11-21T06:01:52Z 2024-11-21T07:01:52Z normaljq member/normaljq 最近因为业务需要,将原来的 mp4 播放改成了 m3u8 播放

但是出现了问题:

播放大视频的时候,只会请求前面两个 ts 分片文件(会播放几秒钟,播放几秒后就一直转圈加载了),小视频没有这个问题

技术栈:前端 vue-video-player 视频存储:阿里云 vod

跨域问题已经解决过了,但还是不行,请问大佬这是什么问题,万分感谢! baa68397e9981c5bfae2157f1fc7478b.png c0bd14e7571391c6ec3ea23c55e9dfe2.png

出现问题的截图: ad6ab3104bbe40dd86d66b0f75495a02.png

m3u8 请求: 439bff06d9e194dd7a9a291bc84b3050.png

m3u8 返回: 10d43169b7e54051a98712a70a2ef1ab.png

m3u8 文件内容:(中间部分省略了) acf65b1eb8de922c54e7561a97e07101.png

中间部分省略了

1e266c5cb5ee41cf76628cdbef21e474.png

提阿里云的工单:反馈这个视频可以正常播放: 61ec21cec9d4fe85e87ba1cc196354fd.png

]]>
想学学视频剪辑之类的技能, 新手使用什么软件比较容易上手? tag:www.v2ex.com,2024-11-20:/t/1091091 2024-11-20T02:57:34Z 2024-11-20T04:11:15Z turfbook member/turfbook 自带的 iMovie 和 app store 的 DaVinci Resolve 是免费的,

final cut pro 要 $300, 价格相差好大 😓, 功能和使用也相差很大吗?

]]>
有什么纯 4K 无广告的播放器 tag:www.v2ex.com,2024-11-01:/t/1085762 2024-11-01T07:08:05Z 2024-11-01T08:49:11Z tuoniaoguoce member/tuoniaoguoce avi 文件修复 tag:www.v2ex.com,2024-10-23:/t/1082981 2024-10-23T09:39:49Z 2024-10-24T14:38:47Z myora member/myora 录的视频文件,复制到电脑上后,发现从某个文件开始,播放器就无法播放了。例如,01.avi ~ 05.avi 是能正常播放的,06.avi 播放时 vlc 提示需要修复 index ,点击修复后,只能播放前 3 分钟(全长 5 分钟),后续的 07.avi~10.avi 则全部无法播放了。用 file 查看文件类型,01 ~ 05.avi 显示是

RIFF (little-endian) data, AVI, 1920 x 1080, 30.00 fps, video: Motion JPEG, audio: uncompressed PCM (mono, 16000 Hz) 

06.avi 跟 01 ~ 05 一样的输出,但是 07.avi~10.avi 则全部都显示是data格式。尝试过使用 ffmpeg 修复,一直报错,错误如下:

[in#0 @ 0x6000039b8800] Error opening input: Invalid data found when processing input 

想问下大佬们这种情况还能不能修复的了?

]]>
开 emby 服的话需要先切片吗? tag:www.v2ex.com,2024-10-20:/t/1081975 2024-10-20T11:59:16Z 2024-10-20T14:50:32Z afkool member/afkool
如果直接扔视频文件过去,服务端解码。这样同时观看的人多了,是不是 CPU 和带宽都直接就炸了啊?

切片能缓解很多。一般开 emby 服是直接扔视频文件直连还是跟搞视频站一样用切片播放? ]]>
有做 UP 主的吗?进来看看有没有比这种 AI 去视频水印更好的办法? tag:www.v2ex.com,2024-10-13:/t/1079754 2024-10-13T01:35:13Z 2024-10-05T01:34:13Z aqx member/aqx
版权:不侵权,我主要做内容评测,类似电影解说,只引用几秒的视频。


HitPaw Watermark Remover 软件我用过,效果不好。 ]]>
用更高的码率压制一段视频,他相比原视频多出来码率作用是什么? tag:www.v2ex.com,2024-10-09:/t/1078738 2024-10-09T18:48:13Z 2024-10-10T06:01:20Z ocdye32 member/ocdye32 假设我用手机录制了一段 400MB 的视频,然后我用 PR 把这段视频重新压制成分别为 200MB 400MB 800MB 的相同格式和分辨率的视频,那么这四段视频的清晰度大小顺序是什么?

]]>
Emby 播放视频很卡,颜色也不正常,请问是怎么回事? tag:www.v2ex.com,2024-10-08:/t/1078194 2024-10-08T02:47:57Z 2024-10-08T06:48:39Z Jinnrry member/Jinnrry 背景:

宿主机 PVE ,raid 阵列,2.5G 网卡,128G 内存,32 核处理器,vGPU 显卡,机器硬件肯定是没有任何问题的。

虚拟机 1: ubuntu 安装 docker ,docker 安装 emby

虚拟机 2: 黑群晖

配置方案:黑裙开启 smb ,emby 通过 smb 访问视频内容

播放方案:

坚果 N1S Ultra 投影仪,安装 emby 客户端播放

问题:

1 、播放部分蓝光视频的时候很卡,但是看起来磁盘 io ,网络 io ,cpu idel 都没有任何异常,那么我这种架构下,到底是投影仪在解码还是 NAS 在解码?我看 emby 设置那里写着如果想要用显卡加速,需要付费,所以我这个 NAS 的 GPU 应该是没用吧?所以到底是哪个地方的问题导致播放卡顿的呀?

2 、播放部分蓝光视频的时候,颜色不对,比如画面大部分绿色都变成了红色。比如看《猩球崛起》,所有的树木都变成红色的了,我看网上说好像是 HDR 的问题,但是我无论是在 Emby 里面还是在投影仪上面,都没找到哪里有相关设置,这个又到底是哪里的问题呢?

]]>
如何设置视频地理位置元信息? tag:www.v2ex.com,2024-09-30:/t/1077176 2024-09-30T10:03:02Z 2024-09-29T18:02:02Z JiaNa member/JiaNa
剪辑视频后丢失了原来的位置信息,想要读取一个视频的经纬度,然后将其设置为另一个视频的位置信息。

标签:Exif ]]>
兄弟们, ffmpeg 搞不定, 有懂的大佬吗? tag:www.v2ex.com,2024-09-27:/t/1076187 2024-09-27T01:49:14Z 2024-09-27T03:39:51Z panxi member/panxi

合并视频 1 https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401313000.mp4

合并视频 2 https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401269000.mp4

合并后的 https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401393000.mp4


命令: 就是简单的合并命令, videoList.txt 就是这两个视频

ffmpeg -f concat -safe 0 -i ./videoList.txt -c copy ./merged_video.mp4 ]]>
求视频监控解决方案 tag:www.v2ex.com,2024-09-24:/t/1075448 2024-09-24T08:31:14Z 2024-09-24T09:43:50Z majianglin member/majianglin
基本需求:

想实现活动检测上报,拍照,在管理端控制台(web)上能查看某个摄像头的实时画面

高级需求:
检测到有人活动,就给服务器上报
服务器下发指令,可以转动摄像头,拍照,录像,查看实时画面

这个方向哪位大佬有经验?指点一下我

最好流媒体服务器也是开源的,用云服务也行 ]]>
uniapp 方式实现视频播放加密统计 tag:www.v2ex.com,2024-09-09:/t/1071246 2024-09-09T03:25:00Z 2024-09-09T03:23:00Z whhxf910 member/whhxf910 uniapp 方式实现视频播放加密统计

在移动应用开发中,视频播放功能是常见的需求之一,而视频内容的加密保护和统计则成为了开发者需要关注的问题。本文将分享如何使用 uniapp 结合视频云点播插件,实现视频播放的加密和统计功能。对方案有任何疑问,可 V:wjc24680525

环境准备

在开始之前,请确保你已经安装了 HBuilderX ,并创建了一个 uniapp 项目。接下来,你需要从插件市场购买并下载视频云点播插件。

集成插件

  1. 购买插件:在插件市场中选择视频云点播插件,并绑定到你的项目中。
  2. 配置插件:在项目的manifest.json文件中,找到app 原生插件配置部分,勾选视频云点播插件。

视频播放加密

视频加密是保护视频内容不被非法获取的重要手段。插件提供了强大的加密功能,我们可以利用这一功能来保护我们的视频内容。

配置加密参数

首先,你需要在视频云平台获取useridreadtokenwritetokensecretkey,这些参数将用于视频的加密和解密。

var cOnfigModule= uni.requireNativePlugin("PLV-VodUniPlugin-ConfigModule"); configModule.setToken({ 'userid': '你的 userid', 'readtoken': '你的 readtoken', 'writetoken': '你的 writetoken', 'secretkey': '你的 secretkey' }, (ret) => { if (ret.isSuccess) { console.log('设置 token 成功'); } else { console.error('设置 token 失败:', ret.errMsg); } }); 

视频播放

使用视频云点播插件提供的播放器组件plv-player来播放视频。

<template> <plv-player ref="vod" class="vod-player" seekType="0" autoPlay="true" disableScreenCAP="false" rememberLastPosition="false" @OnPlayStatus="onPlayStatus" @OnPlayError="onPlayError" @positiOnChange="positionChange"> </plv-player> </template> <script> export default { methods: { setVid() { this.$refs.vod.setVid({ vid: '视频的 vid', level: 0 }, (ret) => { if (ret.errMsg) { uni.showToast({ title: ret.errMsg, icon: "none" }); } }); }, onPlayStatus(e) { console.log('播放状态:', e.playbackState); }, onPlayError(e) { console.error('播放错误:', e.errCode, e.errEvent); }, positionChange(e) { console.log('当前播放位置:', e.currentPosition); } }, mounted() { this.setVid(); } } </script> <style> .vod-player { width: 100%; height: 100%; } </style> 

视频播放统计

视频播放统计对于了解用户行为和优化内容至关重要。插件对应的管理后台提供了丰富的统计字段和 API ,可根据实际需求调用

]]>
uniapp 方式实现直播带货线上培训 tag:www.v2ex.com,2024-09-09:/t/1071229 2024-09-09T02:50:56Z 2024-09-09T02:48:56Z whhxf910 member/whhxf910 uniapp 方式实现直播带货线上培训

简介

在当前的互联网时代,直播已成为一种流行的互动方式,无论是用于商业推广还是教育培训。uniapp 框架利用 Vue.js ,允许开发者编写一次代码,即可在多个平台上部署应用,包括 iOS 、Android 、Web 以及各类小程序。本文将探讨如何使用 uniapp 结合特定的直播 SDK ,来开发支持直播带货、线上培训的应用。对方案有任何疑问,可 V:wjc24680525

技术概览

本文介绍的技术方案涉及一个直播 SDK 插件,它为 Android 和 iOS 平台提供了原生支持,能够覆盖线上培训和直播带货两大应用场景。

功能特点

开发步骤

1. 创建账号

首先,需要在相关直播平台的官方网站注册账号,以便获取必要的开发配置信息。

2. 收集关键配置信息

在注册并登录平台后,从后台获取appIduserIdappSecret等关键配置信息,这些将用于 SDK 插件的初始化和功能调用。

3. SDK 插件集成

根据 SDK 插件提供方的文档,将直播 SDK 插件集成到 uniapp 项目中。包括以下步骤:

代码示例

配置 SDK 插件

var cOnfigModule= uni.requireNativePlugin("LiveScenesConfigModule"); // 初始化 SDK 配置 configModule.setConfig({ appId: "您的 appId", userId: "您的 userId", appSecret: "您的 appSecret" }, (result) => { if (result.isSuccess) { console.log("SDK 插件配置成功"); } else { console.error("SDK 配置失败:", result.errMsg); } }); 

使用播放模块

var playModule = uni.requireNativePlugin("LiveScenesPlayModule"); // 加入直播教室 playModule.joinLiveClassroom(1, { // 1 表示在线教育场景 channelId: "特定频道号", additionalParams: { param4: "自定义参数", param5: "自定义参数" } }, (result) => { if (result.isSuccess) { console.log("成功加入直播"); } else { console.error("加入直播失败:", result.errMsg); } }); 

注意事项

结论

利用 uniapp 框架结合直播 SDK 插件,可以高效地开发出功能丰富的直播应用。本文提供的指南和代码示例旨在帮助开发者快速上手这一过程。

参考资源

]]>
一款可以提取和总结无字幕的 YouTube 的免费工具: NoteGPT! tag:www.v2ex.com,2024-09-03:/t/1069996 2024-09-03T10:39:26Z 2024-09-04T20:57:34Z caohongyuan member/caohongyuan
安装了很多插件或者产品,发现都总结不了无字幕的 YouTube 视频?

好了,看到这个帖子的你找到最佳解决方案了!

NoteGPT 上线了一款免费的工具: https://notegpt.io/youtube-transcript-generator

1 )通过 AI 提取无字幕的 YouTube 视频字幕;
2 ) AI 总结当前视频;
3 ) AI 生成思维导图;
4 ) AI 翻译当前视频;
5 ) AI 对话当前 YouTube 视频;

免费使用、无需登录! ]]>
中台建设方案实现定制化直播平台 tag:www.v2ex.com,2024-09-03:/t/1069939 2024-09-03T08:20:02Z 2024-09-03T08:18:02Z whhxf910 member/whhxf910 中台建设方案实现定制化直播平台

介绍

观看页定制

管理后台定制

]]>
如何实现 App 内的视频/直播悬浮小窗播放 tag:www.v2ex.com,2024-08-28:/t/1068462 2024-08-28T07:04:47Z 2024-08-28T07:02:47Z whhxf910 member/whhxf910 方案概述

一、安卓对接说明

1.1 集成简介

1.1.1 项目架构图

1.1.2 使用源码项目集成

当前将提供的源码包中的 PolyvAndroidWebViewDemo 、PLVWebViewSDK 、PLVJsBridge 、PLVFloatWindow 四个项目放入到同一目录下,然后使用编译器打开 PolyvAndroidWebViewDemo 项目即可。

1.1.3 源码集成注意事项

功能对接说明

参考 1.2 功能对接文档

更换通信协议

如果需要更换 web-native 通信协议的情况时,可以参考提供的  1.3 更换 web-native 通信规则注意事项

1.2 功能对接文档

1.2.1 功能设置

设置 Url 和 UA

在启动 PLVWebViewDemoActivity 之前,我们需要设置加载的 Url 和添加上需要用到的 Ua ,这里可以通过PLVWebViewConfig来进行设置,示例代码如下:

PLVWebViewConfig cOnfig= new PLVWebViewConfig(); config.setUrl("需要加载的 url") .setUa("需要添加的 UA"); PLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config); 

设置小窗边框颜色

当前 SDK 支持设置小窗边框颜色,通过PLVFloatWindowManager进行设置,示例代码如下:

PLVFloatWindowManager.getInstance().setSolidColor(Color.RED); 
1 )设置小窗边框厚度

当前 SDK 支持设置小窗边框颜色,通过PLVFloatWindowManager进行设置,示例代码如下:

PLVFloatWindowManager.getInstance().setSolidWidth(20); 
2 )设置自动开启小窗功能

当进程退到后台时会自动唤出小窗(默认关闭),通过PLVFloatWindowManager进行设置,示例代码如下:

PLVWebViewConfig cOnfig= new PLVWebViewConfig(); config.setSupportAutoFloating(true); // 开启自动开启小窗功能 PLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config); 
3 )使用系统/应用小窗

当前小窗支持系统小窗和应用窗(默认使用系统小窗),如果开启系统小窗需要请求小窗悬浮权限,而应用小窗不需要请求权限,注意应用小窗依赖于 Activity ,当 Activity 被销毁时,应用小窗也会被关闭。

PLVWebViewConfig cOnfig= new PLVWebViewConfig(); config.isSystemFloatingWindow(true);// 为 true 时使用系统窗,false 为使用应用小窗 PLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config); 
4 )使用原生/web 弹出请求权限窗

当前 sdk 支持通过原生或 web 端来弹出请求悬浮权限弹窗(默认使用原生弹窗方式)。

注意如果是选择使用 web 端来弹窗请求悬浮权限弹窗,需要 web 端支持对应的事件。

PLVWebViewConfig cOnfig= new PLVWebViewConfig(); config.setUseWebRequestPermission(true);// 为 true 时 web 弹窗,false 为使用原生弹窗 PLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config); 

1.2.2 监听方法 js 事件

SDK 内部已经定义了一部分与 web 端通信的 js 事件,这些通信事件可以在 demo 层中重写某些方法进行监听和拦截处理,这里以监听 onShare 事件进行为例:

public class PLVWebViewDemoActivity extends PLVWebViewBaseActivity { @Override public void onShare() { // 监听到 onShare 事件的处理 ... super.onShare(); } } 

可以选择需要监听的 js 事件进行重写实现对事件的监听。

注意:这些 js 通信事件都是与 webview 关联,开启系统小窗后,即使 Activity 被销毁依然能收到来自 web 端发送的消息,触发这些方法,所以重写这些方法时,尽量避免做与 Activity 生命周期关联的操作

允许的监听 js 事件

当前支持通过重写方法来监听事件;

有以下这些方法:

 /** * 点击商品,将切换到小窗时会触发该回调 * * @param width 小窗的宽 * @param height 小窗的高 * @param newPage 是否打开新的一页 * @param link 打开新的一页加载的 url * @param data 其他更多数据,开发者可根据需要自定义实现逻辑,数据为 json 格式 */ void changeToWindowForProduct(int width, int height, boolean newPage, String link, String data); /** * 用户主动调用切换到小窗的方法,在切换前会触发该回调 * * @param width 小窗的宽 * @param height 小窗的高 */ void changeToWindowForUser(int width, int height); /** * 点击小窗区域,从小窗中恢复到页面触发该回调 **/ void changeToNormal(); /** * 点击小窗关闭按钮,关闭小窗触发该回调 **/ void closeWindow(); /** * 点击返回事件 */ void onGobackPressed(); /** * 横置屏幕事件 */ void onLandScreen(); /** * 竖直屏幕事件 */ void onPortraitScreen(); /** * 分享事件 */ void onShare(); /** * 收藏事件 */ void onCollect(); /** * 隐藏状态栏,进入沉浸模式 */ void hideNavigationBar(); /** * 显示状态栏,退出沉浸模式 */ void showNavigationBar(); /** * 打开悬浮窗权限页面 */ void requestFloatWindowPermissionByWeb(); /** * 发送当前小窗的打开状态给前端 */ void getFloatWindowStatus(); /** * 获取当前的网路状态 */ void getCurrentNetworkStatus(); /** * 设置是否开启自动悬浮窗权限 * @param enable true 为打开,false 为甘比 */ void setEnableBackground(boolean enable); /** * 获取是否开启了自动悬浮窗的权限 */ void getEnableBackground(); /** * 处理其他 event */ void handleOtherEvent(String event); 

1.2.3 注册新的 js 通信事件

SDK 支持注册自定义 js 事件,可以通过下面的方式来注册自定义 js 事件,示例代码如下:

@Override protected void initHandleForDemo() { //监听来自 web 端发送事件 floatableLayout.getWebView().registerHandler("监听事件", new BridgeHandler() { @Override public void handler(String s, CallBackFunction callBackFunction) {} }); //向 web 端发送对应事件和消息 floatableLayout.getWebView().callHandler("发送事件", "发送消息", new CallBackFunction() { @Override public void onCallBack(String s } }); } 

注意:注册新的 js 事件时不仅需要原生端做相应的操作,还需要 web 端有注册对应的事件,否则是原生端是不会接收到对应的事件消息

1.3 更换 web-native 通信规则注意事项

1.3.1 说明

当前 SDK 内部是通过 Jsbridge 该库来实现 web 端与原生端的通信,Jsbridge 中定义了 web 端与原生的通信规则,如果集成项目是没有制定指定的 web-native 通信规则,那么可以直接使用 SDK 的通信规则即可,无需其余改动。

如果集成项目中有定制指定的 web-native 通信规则,可以参考下面的方式进行修改。

无论是使用哪一种通信规则,关键在于原生端发送/接收 web 端消息,web 端发送/接收原生端消息,所以当需要更换 SDK 内部的 web-native 通信规则仅关注上述的两点即可。

1.3.2 更换 native 端通信规则

因为 sdk 内部是依赖于 jsbridge 该模块实现 web-native 通信,当需要更换通信规则时,可以选择不依赖该模块。

1.3.3 更改 PLVBaseWebView 继承类

public class PLVBaseWebView extends BridgeWebView { .... } 

可将 PLVBaseWebView 继承的 BridgeWebView 更换为集成项目中指定通信规则的 webview 。

1.3.4 更改 WebViewClient

WebViewClient 是实现原生端接收 web 端消息的关键,也是定制修改 webview 的核心部份,所以在更换通信规则时也需要更换 WebViewClient

//替换自己需要用到的 WebViewClient webView.setWebViewClient(webviewClient); 

可以通过 setWebViewClient(new WebViewClient() 方法为 webview 设置指定 WebViewclient 。

1.3.5 更改原生端发送/接收 web 端消息的方法

  1. 更换发送消息方式
public void callMessage(String type, String message) { //当使用的新的 web-native 规则时,可以将下面的代码修改为 webview 使用新规则发送消息时的代码 webview.callHandler(type, message, new CallBackFunction() { @Override public void onCallBack(String s) { ... } }); } 

当前 SDK 内部时通过 webview.callHandler()方法来实现消息的发送,当更换新的通信规则时,可以将这个 webview.callHandler()方法替换为新规则中对应原生端发送消息的方法。

  1. 更换接收 web 端消息
webview.registerHandler("xxx", new BridgeHandler() { @Override public void handler(String s, CallBackFunction callBackFunction) { ... } }); 

当前 SDK 内部是通过 webview.registerHandler()方法来监听 web 端发送的消息,当更换新的通信规则时,可以将这个 webview.registerHandler()方法替换为新规则中对应原生端接收 web 消息的方法。

1.3.6 更换 web 端通信规则

web-native 通信规则是由 web 端和原生端两端定制的,所以当更换 web-native 通信规则不仅需要原生端更换,web 端也需要进行更换。

注意事项

当前需要通信的 web 页面 与 更换通信规则后的原生端 所使用的通信规则是否是对应,如果是对应的情况下无需做其他更替。

如果需要通信的 web 页面与 更换通信规则后的原生端 所使用的不对应,那么就需要去更替 web 端的通信规则。

如 web 端页面需要使用保利威的 web 页面(当前保利威 web 页面与 sdk 内部所使用的通信规则一致,当原生端切换通信规则,那么 web 端页面也需要更换对应通信规则)

1.3.7 更换 web 端发送/接收方法

1.更改 web 端发送消息方式

 window.bridge.callHandler( 'callAppEvent', message, function(responseData) { //发送消息 .... } ); 

当前 SDK 内部与 Web 端对应的通信规则是通过 bridge.callHandler()方法来进行发送消息,当替换新的通信规则后,可以使用新的发送方式来取代这个 bridge.callHandler()方法

2.更改 web 端接收消息方式

// 监听来自 xxx 事件的消息 bridge.registerHandler("xxx", function(data, responseCallback) { document.getElementById("show").innerHTML = (data); }); 

当前 SDK 内部与 Web 端对应的通信规则是通过 bridge.registerHandler()方法来接收消息,当替换新的通信规则后,可以使用新的发送方式来取代这个 bridge.registerHandler()方法

二、iOS 对接说明

2.1 集成简介

2.1.1 项目架构图

2.1.2 运行环境要求

名称· 要求
iOS 系统 9.0+
CocoaPods 1.11.3+
Xcode 11.0+

2.2 快速集成

2.2.1 项目配置

配置支持系统版本

打开项目的 PROJECT - Deployment Target - iOS Deployment Target 改为 9.0 或更高。

打开项目的 TARGETS - General - Deployment Info ,把 iOS 系统改为 9.0 或更高。

2.2.2 配置 App Transport Security (ATS)

打开项目的 info.plist 文件,添加如下内容:

<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> <key>NSAllowsArbitraryLoadsInWebContent</key> <true/> </dict> 

2.2.3 配置设备旋转

播放器支持全屏播放,需要在 TARGETS - General - Deployment Info 中,勾选支持的横屏旋转方向。

2.2.4 配置后台播放和画中画

打开项目的 TARGETS - Signings & Capabilities ,点击 + Capability ,选择 Background Modes ,勾选 ‘Audio, AirPlay, and Picture in Picture’。

2.3 集成 SDK

2.3.1 Pod 方式集成

集成 PLVWebViewSDK

在 Podfile 文件中,添加以下内容:

pod 'PLVWebViewSDK', '~> 1.0.0' 

在终端执行 pod install

集成系统小窗

如果需要使用系统小窗功能,则需要在 Podfile 文件中另外添加以下内容

# 包含系统画中画 -- 如果不使用系统小窗 则不需要下面配置 pod 'PLVAliHttpDNS', '~>1.10.0' pod 'PLVFoundationSDK', '1.10.6', :subspecs => ['BaseUtils', 'NetworkUtils', 'ErrorCode', 'LogReporter', 'ConsoleLogger', 'Reachability', 'SafeModel', 'ProgressHUD'] pod 'PLVBusinessSDK', '1.10.4', :subspecs => ['BaseBSH'] pod 'PLVLiveScenesSDK', '1.10.6', :subspecs => ['Base', 'LogReporter', 'ConsoleLogger', 'ErrorManager', 'Network', 'Player', 'BasePlayer', 'LivePlayer', 'LivePlaybackPlayer', 'PictureInPicture'] 

并在终端执行 pod install,并且将对应的 PLVLiveScenesSDK 、PLVBusinessSDK 进行替换。

2.3.2 离线包方式集成

集成 PLVWebViewSDK

将 PLVWebViewSDK.framework 库添加到自己的项目中。如果是使用源码的方式集成,则需要将 PLVWebViewSDK 文件整个添加到自己的项目即可。

集成系统小窗

1.如果项目使用系统小窗功能则需要将以下库添加到项目中

PLVAliHttpDNS 、PLVBusinessSDK 、PLVFoundationSDK 、PLVIJKPlayer 、PLVLiveScenesSDK 

2.在 General => Frameworks ,Libraries ,and Embedded Content 中移除已添加的 PLVFoundationSDK.framework 、PLVLiveScenesSDK.framework 、PLVBusinessSDK.framework 库,并添加系统库 libresolv.tbd 。

3.设置 PLVIJKPlayer 为 Embed & Sign

4.Build Settings ,Other Linker Flags 中添加 -ObjC ,如果项目已配置有,则不需要重复添加

5.运行报错

如果模拟器运行报错需要在 Build Settings 中设置 Excluded Architecture => Any iOS Simulator SDK 为 arm64

如果运行报错

Building for iOS Simulator, but the linked and embedded framework '***' was built for iOS + tvOS Simulator 

可在 Build Settings 中 设置 VALIDATE_WORKSPACE 为 YES 即可。

2.4 WebView 接入

创建想要展示 WebView 的控制器页面 DemoViewController 继承于PLVWebViewBaseViewController,并通过初始化方法 -initWithConfig:创建控制器页面。示例代码如下:

// PLVWebViewDemoViewController.h #import <PLVWebViewSDK/PLVWebViewSDK.h> @interface PLVWebViewDemoViewController : PLVWebViewBaseViewController @end 

初始化时可通过重写 initHandleForDemo 进行自定义配置,同时可以对 Bridge 事件进行自定义处理。示例代码如下:

// PLVWebViewDemoViewController.m @implementation PLVWebViewDemoViewController #pragma mark - [ Override ] - (void)viewDidLoad { [super viewDidLoad]; } /// 初始化时,可以进行的自定义配置 //- (void)initHandleForDemo { // //} #pragma mark - [ Delegate ] #pragma mark PLVFloatableWebViewBridgeDelegate /// 如需要监听 js 回调事件,可以通过 Delegate 事件进行相应的处理,例如 webviewBridgeShare 消息 //- (void)webviewBridgeShare:(PLVFloatableWebViewBridge *)bridge { // //} @end 

创建、配置、打开直播页面控制器

PLVWebViewConfig *cOnfig= [[PLVWebViewConfig alloc] init]; config.urlString = urlString; config.allowFloatingWindow = YES; config.isSystemFloatingWindow = NO; config.userAgent = self.uaTextView.text; config.enableAutoFloatWindow = YES; PLVWebViewDemoViewController *webVC = [[PLVWebViewDemoViewController alloc] initWithConfig:config]; [self.navigationController pushViewController:webVC animated:YES]; 

2.5 高级功能

2.5.1 WebView 配置

创建 PLVWebViewBaseViewController 时需要根据 PLVWebViewConfig 配置来进行初始化。

PLVWebViewConfig *cOnfig= [[PLVWebViewConfig alloc] init]; config.urlString = @""; config.allowFloatingWindow = YES; config.isSystemFloatingWindow = NO; config.userAgent = @""; config.enableAutoFloatWindow = YES; PLVWebViewDemoViewController *floatingWebVC = [[PLVWebViewDemoViewController alloc] initWithConfig:config]; 

2.5.2 应用内小窗配置

我们还可以对浮窗的大小、默认位置、以及样式进行配置修改:

// 配置浮窗大小 [[PLVFloatWindowManager sharedManager] setFloatingWindowSize:size]; // 配置浮窗初始位置 [[PLVFloatWindowManager sharedManager] setFloatingWindowLocation:point]; // 应用内小窗样式修改 UIView *appWindowView = [PLVFloatWindowManager sharedManager].floatingWindow; appWindowView.layer.cornerRadius = 8.0f; appWindowView.layer.masksToBounds = YES; 

其中,调用 -moveContentViewToWindow:size: 方法主动唤起的浮窗,默认宽度为屏幕的 0.3 倍,宽高比 16:9 。通过保利威的网页唤起浮窗,浮窗大小由网页告知。初始位置是指浮窗右下角距离屏幕右下角的相对位置,默认为(-10, -100), 表示悬浮窗右边沿距离屏幕右边沿 10pt ,下边沿距离屏幕下边沿 100pt 。

2.5.3 画中画配置

  1. 如果要使用画中画功能,首先需要在 Podfile 文件中 添加支持画中画的 SDK ,然后执行 pod install

    # 包含系统画中画 -- 如果不使用系统小窗 则不需要下面配置 pod 'PLVAliHttpDNS', '~>1.10.0' pod 'PLVFoundationSDK', '1.10.6', :subspecs => ['BaseUtils', 'NetworkUtils', 'ErrorCode', 'LogReporter', 'ConsoleLogger', 'Reachability', 'SafeModel', 'ProgressHUD'] pod 'PLVBusinessSDK', '1.10.4', :subspecs => ['BaseBSH'] pod 'PLVLiveScenesSDK', '1.10.6', :subspecs => ['Base', 'LogReporter', 'ConsoleLogger', 'ErrorManager', 'Network', 'Player', 'BasePlayer', 'LivePlayer', 'LivePlaybackPlayer', 'PictureInPicture'] 
  2. 替换对应的离线包

用提供的离线包PLVLiveScenesSDK 、PLVBusinessSDK 将 Pods 文件夹下对应的 SDK 进行替换。

2.5.4 UA 和白名单配置

当开启了 enabelWhiteList 后,只有添加了域名白名单的链接才会支持原生与前端的通信,才支持小窗的功能。

[PLVUAConfigManager sharedManager].enabelWhiteList = YES; [[PLVUAConfigManager sharedManager] addHostWhitelist:@[@"live.polyv.cn"]]; 

同时支持 自定义配置 UA

[[PLVUAConfigManager sharedManager] addCustomUserAgent:@""]; 

2.5.5 监听方法 js 事件

在 SDK 内部已经对一些事件进行了处理,如果想要自定义处理某些事件可以在 demo 中进行监听拦截处理。示例如下:

#pragma mark - [ Delegate ] #pragma mark PLVFloatableWebViewBridgeDelegate /// 如需要监听 js 回调事件,可以通过 Delegate 事件进行相应的处理,例如 webviewBridgeShare 消息 - (void)webviewBridgeShare:(PLVFloatableWebViewBridge *)bridge { } 

2.5.6 注册和调用自定 js 事件

可以通过 Demo 层注册和调用自定义事件,示例代码如下:

- (void)initHandleForDemo { [self.contentAreaView.mainWebView.bridge registerHandler:@"" handler:^(id _Nonnull data, PLVWVJBResponseCallback _Nonnull responseCallback) { }]; [self.contentAreaView.mainWebView.bridge callHandler:@"" data:nil responseCallback:^(id _Nonnull responseData) { }]; } 

2 .6 更换 web-native 通信规则注意事项

本项目中使用的是开源库 WebViewJavascriptBridge 来实现 web 和 native 之间的通信。如果接入的项目中没有用到 web-native 通信,则不需要做任何调整。如果接入的项目中也用到 web-native 通信,则可以参考下面的方式进行修改。

2.6.1 更换 native 端通信规则

SDK 中使用的 WebViewJavascriptBridge 来实现通信的,在 PLVFloatableWebViewBridge 中对其进行了封装处理,如果需要更换 native 端通信规则只需要修改 PLVFloatableWebViewBridge 这个类即可

更换注册消息方式:

- (void)registerHandler:(NSString*)handlerName handler:(WVJBHandler)handler { //当使用的新的 web-native 规则时,可以将下面的代码修改为 webview 使用新规则注册消息时的代码 [self.bridge registerHandler:handlerName handler:handler]; } 

更换发送 web 端消息

- (void)callHandler:(NSString*)handlerName data:(id _Nullable)data responseCallback:(WVJBResponseCallback _Nullable)responseCallback { //当使用的新的 web-native 规则时,可以将下面的代码修改为 webview 使用新规则发送消息时的代码 [self.bridge callHandler:handlerName data:data responseCallback:responseCallback]; } 

2.6.2 更换 web 端通信规则

当 native 端通信规则改变时,web 端则要根据是否与原来的通信方式原理相同来判断是否需要修改。

当前 web 端注册消息方式

bridge.registerHandler("testJavascriptHandler", function (data, responseCallback) { console.log(data); responseCallback(data); } ); 

当前 web 端发送消息方式

bridge.callHandler("callAppEvent", { }, function responseCallback(responseData) { console.log(responseData); } ); 

当前 web-native 的通信是通过 bridge 这种方式来发送和接收消息的,如果需要调整可用集成项目 web 端接收、发送消息的方式来进行替换。

2.7 iOS 系统版本使用系统小窗功能说明

iOS 因为系统限制想实现系统小窗只能通过画中画的功能,同时这个功能会有版本限制,在 iOS14+开始支持 iPhone 的画中画功能。同时直播如果使用系统播放器 AVPlayer 会有 14s+的高延迟,IJKPlayer 可以实现低延迟,但是 iOS15 以上画中画才支持 SampleBufferLayer ,因此如果直播低延迟的话需要 iOS15+。

三、鸿蒙 next

3.1 简介

PLVWebSDK 项目从属于易方信息科技股份有限公司,对保利威云直播、云点播系列产品的直播、回放观看做了良好的适配,极大优化了用户的观看体验,并支持浮窗播放等扩展功能,也可作为其他网页的展示容器。

本项目包含功能如下:

3.2 下载安装

ohpm install plvwebsdk 

OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包

3.3 需要权限

ohos.permission.INTERNET ohos.permission.GET_NETWORK_INFO 

3.5 功能说明

3.5.1 PLVWebViewConfig

1.设置 UA

当前可以通过下面的方式来设置需要的 UA

PLVWebViewConfig().setUa("Android" + PLVUAConfig.defaultUA)

注意:如果需要到 Saas 页面的小窗功能的情况,必须在 UA 中带上 Android 和 PLVUAConfig.defaultUA 字段

2.设置 url

可以通过下面的方式来设置需要加载的 url

PLVWebViewConfig().setUrl("需要加载的 url")

3.设置是否允许小窗悬浮

可以通过下面的方式来设置是否允许开启小窗功能,默认是开启的,如不需要可以设置为 false

PLVWebViewConfig().setAllowFloatingWindow(true)

3.5.2 自定义注册事件

当前 SDK 内部已经注册好与前端页面通信的事件,当接入 sdk 后就能直接使用这些事件。

SDK 也支持注册自定义事件,可以通过下面的方式来进行注册

this.controller.registerHandler("自定义事件", (data: string) => {// 监听自定义事件的处理 }) this.controller.callHandle("发送原生事件", "xxx", () => {//发送原生事件 }) 

如果需要监听/拦截 SDK 内部已经实现了的事件,可以通过下面的方式继续监听/拦截,这里以 onShare 事件为例子,如果需要监听/拦截其他事件可以仿照这里来完成

this.controller.registerCustomerContainEvent({ onShare: () => {// 监听到 onShare 事件时的操作 return true // return true 表示拦截掉分享事件 false 就继续由 sdk 往下执行 } }) 

四、自定义事件

// 小窗播放事件 webviewBridage?.sendData('clickProduct', webviewData); // 没有小窗播放的情况: 监听自定义事件 webviewBridage?.sendData('clickProductCustom', webviewData); // 数据格式 const webviewData = { width: plvWebviewDataSize.width, height: plvWebviewDataSize.height, newPage: true, link: “跳转的自定义 url”, data: { type : out | inner | stock link : “跳转的自定义 url” ( 同上 link ) market : ‘5053’, code : 789465, name : 名称 }, } 

clickProduct 事件 和 clickProductCustom 自定义 webviewData ---> data 下面根据 type 和 其他参数完成 app 内链接跳转功能

对方案有任何疑问,可+V:wjc24680525 ,备注“小窗”

]]>
打算买个 HDMI 无线投屏器,有没有推荐的?稳定压倒一切 tag:www.v2ex.com,2024-08-22:/t/1066949 2024-08-22T03:48:28Z 2024-08-22T05:59:02Z xscc member/xscc 类似于 veed/zeemo 的动态字幕效果怎么实现 tag:www.v2ex.com,2024-08-11:/t/1064131 2024-08-11T07:42:12Z 2024-08-11T03:42:12Z vevlins member/vevlins 一行字幕,字母跟随说话时间高亮,不考虑语音识别问题,假设我已经可以得到每个单词和句子的展示时间,这种视频生成是通过什么技术做到的呢?我知道 ffmpeg ,有什么生成这种字幕动画的完整一些的方案吗

]]>
分享一个 AI 生成视频的网站 Sora Video AI tag:www.v2ex.com,2024-08-11:/t/1064074 2024-08-11T01:50:08Z 2024-08-11T15:40:00Z chriselee member/chriselee https://www.soravideoai.net ]]> 有没有自动从视频识别精彩瞬间并提取照片的 AI 工具? tag:www.v2ex.com,2024-07-23:/t/1059577 2024-07-23T20:38:11Z 2024-07-31T07:44:42Z Philippa member/Philippa 有大概十几个小时的旅游 4K 视频,全程都是手持录制为主,没什么照片。现在想从其中提取出精彩瞬间的照片,但又不想手动操作。现在 AI 那么发达,估计也能做个 5 、6 成,想问问有什么好工具推荐。

]]>
抖音真恶心能下载到的最高画质也是经过压缩的 tag:www.v2ex.com,2024-07-23:/t/1059559 2024-07-23T14:34:57Z 2024-07-23T12:33:57Z purenothingform member/purenothingform 抖音能下载到的最高画质也是糊糊的 不像小红书在服务器保留原始画质文件可以通过油猴下载 杯具的情况是博主在抖音平台上传的某些视频却不在小红书也上传,导致粉丝最多只能下载到糊糊的抖音压缩版本。 怎样劝说博主一碗水端平不要偏心抖音平台?

]]>
有偿, MP4 视频时长与实际不符的问题 tag:www.v2ex.com,2024-07-08:/t/1055706 2024-07-08T08:27:37Z 2024-07-08T08:50:32Z easonwaii member/easonwaii 加绿色:ZWFzb25nbw== ]]> 都 2024 年了,体育赛事直播还在 25Hz1080 还 i... tag:www.v2ex.com,2024-06-17:/t/1050366 2024-06-17T15:15:19Z 2024-06-17T13:15:19Z giganet member/giganet MPC Video Renderer 中 RTX 超分辨率和正确的视频缩小效果只能二选一吗 tag:www.v2ex.com,2024-06-14:/t/1049612 2024-06-14T09:10:03Z 2024-06-14T13:10:03Z mercury233 member/mercury233
如果在设置中通过使用 D3D11 缩放来开启超分辨率,把窗口缩小时,画面会出现严重的锯齿


关闭超分辨率时画质正常



VideoRenderer 的 issue 上说是 nvidia 的锅
https://github.com/Aleksoid1978/VideoRenderer/issues/122
https://github.com/Aleksoid1978/VideoRenderer/issues/120

目前只能手动切换这个开关,想问问有没有成功解决这个问题的朋友 ]]>
推荐几个在用的视频下载工具 tag:www.v2ex.com,2024-04-25:/t/1035733 2024-04-25T12:50:48Z 2024-04-25T15:42:55Z DuckSum member/DuckSum 在线视频下载器-XXVID

免费,可以下载高清、全高清及 4K+视频,部分站点还支持无水印下载,自称覆盖 1000+网站,海外几个热门站点确实可用,懂得都懂,但是不支持 YouTube !

网站地址👉 XXVID

在线视频下载器| XXVID

在线视频下载器| XXVID

YouTube 视频下载器-DMSAVE

免费,可以选择不同分辨率,包括音频、视频,也支持其他站点下载,但是亲测 YouTube 效果最好。

网站地址👉 DMSAVE

YouTube 视频下载器| DMSAVE

还有哪些大家一直在用的视频下载站点,欢迎评论分享,传播正能量😎

]]>
网上有公开的大华或者海康的视频流做测试码? tag:www.v2ex.com,2024-04-02:/t/1029063 2024-04-02T03:27:39Z 2024-04-02T03:27:39Z huage member/huage 已有音频文稿,怎样生成字幕时间线 tag:www.v2ex.com,2024-03-02:/t/1020033 2024-03-02T06:37:37Z 2024-04-05T04:56:12Z nanqic member/nanqic 如题,请教各位做字幕的大佬,已有如下格式的 txt 文稿,和 mp3 文件,有自动匹配字幕时间线的软件吗? 用过剪映,准确率不高,Subtitle Edit 好像没有这个功能,目前是听一句音频,根据波纹手动调整时间,有没有高效一点的处理方式?

第一句 第二句 第三句 

想要生成如下格式或 srt 字幕

00:00:00:01 00:00:02:08 第一句 00:00:02:08 00:00:03:24 第二句 00:00:03:24 00:00:06:04 第三句 
]]>
请问现在最新的表情迁移研究,有开源代码项目的是哪些啊? tag:www.v2ex.com,2024-02-29:/t/1019354 2024-02-29T01:59:52Z 2024-02-29T01:59:52Z Haku member/Haku 目前网上能搜到的 first order emotion 等都已经是好几年以前的了。最近看到的跳舞的则是字节的貌似还没开源。

飞浆的我看视频和自己跑推理,效果都不太好,想问下各位知道有哪些比较新一点且效果还行的项目吗?

]]>
tx 视频网页版部分已不给看。。。 tag:www.v2ex.com,2024-02-17:/t/1016045 2024-02-17T12:17:27Z 2024-02-17T21:17:34Z xmuli member/xmuli Chrome && Firefox && Edge 播放都如图,得下客户端了; 今晚更新 20:00 ,年番 84 集;其它剧未测;

pFJEpYn.png

pFJEFyT.png

]]>
你们看 HDR 视频觉得效果好吗 tag:www.v2ex.com,2024-01-31:/t/1013238 2024-01-31T14:44:44Z 2024-02-08T02:23:46Z bkmi member/bkmi 不论是家里的电视还是 M1 Pro 笔记本,还有 iPad Pro ,三星 S23U ,这些设备亮度都不低,看参数 HDR 内容都能到 1600 尼特,但是感觉 HDR 画面还是偏暗,所谓的更多细节也没太感受出来。是设备屏幕亮度还不够,还是 HDR 就这样。

平时我还是倾向于挑 SDR 视频在看,但是最近下资源发现越来越多是 HDR 内容,还有 Dolby Vision 内容,资源越来越难下了。

]]>
vlc 播放器播放视频切换时会使当前窗口退出活动状态,这个怎么不使当前窗口退出活动状态呢? tag:www.v2ex.com,2024-01-28:/t/1012173 2024-01-28T06:38:21Z 2024-01-28T06:38:21Z chenqh member/chenqh 关于 AMD 显卡与 Pr 硬件加速相关的问题 tag:www.v2ex.com,2024-01-14:/t/1008521 2024-01-14T08:01:16Z 2024-01-14T07:59:16Z NightmareFn76 member/NightmareFn76 之前整了一台过渡使用的台式机 I3-12100F+AMD 5600XT 结果使用 Pr 时候发现虽然能选择硬件加速,但压制视频时候 CPU 基本跑满 GPU 纯粹在摸鱼 现在不知道有没有什么解决方案

]]>
我街拍录制视频的时候,右下角有个地图,随时告诉观众我在哪里,这个需求有办法实现吗? tag:www.v2ex.com,2023-12-14:/t/1000374 2023-12-14T07:12:11Z 2023-12-14T08:11:11Z wangshou89 member/wangshou89 只是想在这个基础上能显示具体路名。
]]>
同样 2160 的画质,为什么一个 70G,一个 30G,差别在哪里? tag:www.v2ex.com,2023-11-21:/t/993715 2023-11-21T01:57:53Z 2023-11-25T00:51:53Z cmichael member/cmichael Hacksaw.Ridge.2016.2160p.BluRay.REMUX.HEVC.TrueHD.7.1.Atmos

Hacksaw Ridge 2016 Multi 2160p UHD BluRay Hevc10 HDR10 DTSHD & ATMOS 7.1 -DDR

是不是 remux 和 hevc 的差别?也不至于差 1 倍容量吧?

另外请问下,两者相同象素下画质上差别明显吗?

]]>
如何批量去除视中的特定内容? tag:www.v2ex.com,2023-11-02:/t/987796 2023-11-02T03:37:45Z 2023-11-02T08:44:18Z acbot member/acbot 有没有工具或者是方法(最好是开源产品)可以批量去除视中特定的内容。比如:1. 去除视频的片头片尾,这种时间段基本是固定很多视频编辑工具都可以处理,只是有没有能做批量处理的工具呢; 2. 视频中间不定时插入的特定视频(比如:电视剧中间的广告)这些插入的视频特点就是每个视频中都重复一样,那么有没有工具能批量自动去除这些特定(用户指定一个样本)的视频。

]]>
为什么有些视频直接空格预览时,会一卡一卡的,反而使用类似 Movist 播放器播放时正常? tag:www.v2ex.com,2023-10-02:/t/978606 2023-10-02T10:34:25Z 2023-10-02T10:34:25Z deepout member/deepout RT 非常奇怪,有时候下载的电影如果直接空格预览,视频一直是一卡一卡的状态,但使用 Permute 之类的转换一遍就正常了。

如果不转换一遍直接扔到剪辑软件中,在播放时也是一卡一卡的,抽搐状态。

但很多视频播放器直接播放却又不存在这个现象。

有没有大神遇到同样的问题,感谢!

]]>
有什么软件能批量把视频横屏转竖屏吗? tag:www.v2ex.com,2023-09-05:/t/971235 2023-09-05T15:32:52Z 2023-09-05T16:50:01Z ucyo member/ucyo 有什么软件能批量把视频横屏转竖屏吗? 横屏 16:9 转成 9:16 的,转了后能接受上下黑框,主要是要批量转很多。

]]>
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86