Solidot 公告
文章提交注意事项:
请在发布文章时用HTML代码加上至少一条新闻来源的链接;原创性消息,可加入相关信息(如涉及公司的网址)的链接。有任何问题,邮件至:he.fang#zhiding.cn
注意:收到邮件乱码的用户请修改客户端的默认字体编码,从"简体中文(GB2312)"修改为"Unicode(UTF-8)"。
流媒体巨头 Netflix
宣布开始在部分电视机和 PS4 Pro 上使用 AV1 编解码器。AV1 是 AOMedia 在 2018 年
释出的开源免专利费编解码器,其 4K UHD 视频压缩率高于竞争的编码器。AOMedia 由包括 Netflix 在内的等科技公司组建。AV1 的普及依赖于硬件的支持,Netflix 表示为了确保用户获得良好的体验,它会检查电视设备是否遵守 AV1 解码的规格。Google 已经要求 Android TV 设备支持 AV1 解码,较新的 Android TV 设备应该能播放 Netflix 的 AV1 视频。
今年 7 月南非 KwaZulu-Natal 和 Gauteng 地区发生骚扰,三星公司在当地仓库中的电视机被盗。三星南非分公司
宣布,它激活了所有被盗电视机的 TV Block 功能,本质上是将被盗电视机变成砖头。TV Block 预装在所有三星电视产品中,是一种远程解决方案,能监测电视机是否被不当激活,确保只被拥有有效购买凭证的合法所有者使用。为了启动三星电视机,用户需要将其联网,如果电视机的序列号被监测出属于被盗产品,那么在联网时 TV Block 功能将会被激活,所有电视功能将被禁用。三星南非分公司表示,如果电视机被错误屏蔽,那么消费者提供有效购买凭证之后功能可以被恢复。
英伟达推出的流媒体设备 Nvidia Shield TV 运行 Android TV,而 Google 最近向 Android TV 推送了更新,重新设计了 UI,
在主屏幕加入了横幅图像。Google 称这些图像是推荐内容,会定期更换和轮换,向用户推荐他们可能感兴趣的流媒体内容。Shield TV 用户认为这些横幅就是广告。Shield TV 并不是一款廉价的流媒体设备,它价格在 100 美元以上,原本是没有广告的,而这一优点是很多 Shield TV 用户决定购买它的原因。现在他们通过集体写差评表达不满。
LG
宣布将会授权 webOS 给其他电视厂商使用。webOS 最早在 2009 年发布,2010 年惠普收购 Palm,但之后终止了 Palm 手机和操作系统项目,它在 2012 年部分开源了 webOS,2013 年将 webOS 授权给 LG,该操作系统被 LG 用于智能电视和电冰箱等产品。相比目前智能电视广泛使用的 Android TV,webOS
被认为 UI 更直观,应用加载和切换更快,而 Android TV 的优势在于生态系统更丰富,应用支持更完善。
普林斯顿大学的
研究显示,联网智能电视加载了
大量的跟踪程序。如果你使用 Roku 或 Amazon Fire 等设备,那么有很多公司能对你正在观看的内容构建相对全面的画面。普林斯顿计算机科学副教授 Arvind Narayanan 和同事开发了一个机器人程序自动在 Roku 和 Amazon Fire 上安装了数千个频道,然后它模拟人类行为去浏览和观看视频,在播放广告时它会跟踪幕后的数据收集。设备类型、城市等信息对用户来说称不上唯一,但设备序列号、Wi-Fi 和广告 ID 则能跟踪到个人。某些频道甚至会向跟踪器发送未加密的电邮地址和视频标题。研究在 69% 的 Roku 频道和 89% 的 Amazon Fire 频道上发现了跟踪器,许多跟踪服务商属于 Google 等知名企业,但还有许多鲜为人知。89% 的 Roku 频道发现了 Google 的广告服务 DoubleClick。搜索巨人在一份声明中表示它制定了保护用户隐私的行业准则。
function effect_add(ele,num2=1){
var num1 = parseInt(ele.text());
num2=num1+1;
var tt = 15;
var cc = 3;
var span_num = num2-num1;
if(span_num<=0)return false;
if(span_num<10){
tt=0.1;cc=1;
}else if(span_num>=10 && span_num<20){
tt=10;cc=2;
}else{
tt=15;cc=3;
}
var nn = 0;
var tc = parseInt(span_num/cc);
var c_num = 0;
var rt = parseInt(tt*100/tc);
var t = setInterval(function(){
if(c_num == tc){
var val = num1+span_num;
clearInterval(t);
}else{
var val = num1+cc*c_num;
}
ele.text(val);
c_num++;
},rt);
}
$("div.actions a[rel=hvala]").click(function () {
var _this = $(this);
var span = _this.find('span');
var id = _this.attr('data');
$.post('//solidot.justindustin.workers.dev/my/act?op=hvala', {id: id}, function (data) {
var data = eval("(" + data + ")");
if (data.id == 1) {
effect_add(span,data.num);
_this.parent('li').toggleClass('active');
} else {
alert(data.msg);
if (data.id == -2) {
window.location.href = "/login";
}
}
});
});
$("div.actions a[rel=fav]").click(function () {
window.location.href="/login";
})
$('div.block_m span.user').mouseover(function () {
var _this = $(this).children('.user_box');
if (_this.html() == "") {
var start = '
';
var end = '
';
_this.html(start + '
' + end);
$.ajax({
type: "POST",
url: "/user/userinfo",
data: "user=" + $(this).attr('id'),
success: function (data) {
var data = eval("(" + data + ")");
var content = '';
if (data[0] == -2) {
content += '
暂无个人简介
';
} else {
content += '
' + data[0][0] + data[0][1] + '
';
content += '
关系:';
if (data[1] == -1) {
content += '自己';
} else if (data[1][0] == 0) {
content += '
普通
修改关系';
} else if (data[1][0] == 1) {
content += '
朋友
修改关系';
} else if (data[1][0] == 2) {
content += '
敌人
修改关系';
}
content += "
";
if (data[2] != undefined) {
content += '
签名:' + data[2] + '
';
}
}
_this.html(start + content + end);
}
})
}
else
_this.removeClass('hiden')
}).mouseout(function () {
$(this).children('div.user_box').addClass('hiden')
})
$('#ul_nav li.s_icon').mouseover(function(){
var d = $(this).children('div');
d.toggleClass('hiden');
}).mouseout(function(){
var d = $(this).children('div');
d.toggleClass('hiden');
});
$('.wechat').mouseover(function(){
$('.wechat_code').toggleClass('hiden');
}).mouseout(function(){
$('.wechat_code').toggleClass('hiden');
});
$(document).ready(function(){
$('.nav-secondary a').click(function(){
var _txt = $(this).text();
_hmt.push(['_trackEvent', 'nav', 'click', _txt])
})
$('.btn_ss').click(function(){
var _txt = $(".textinp").val()
_hmt.push(['_trackEvent', 'search', 'click', _txt])
})
$('.block_m a').click(function(){
var _txt = $(this).text();
_hmt.push(['_trackEvent', 'story', 'click', _txt])
})
})
document.write(unescape("%3Cscript src='https://hm.baidu.com/h.js%3Fd11396a350156e4682e4156a671bdaf1' type='text/javascript'%3E%3C/script%3E"));