Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >由于未指定的像素格式,无法创建ffmpeg、dash清单。

由于未指定的像素格式,无法创建ffmpeg、dash清单。
EN

Stack Overflow用户
提问于 2015-09-18 03:23:13
回答 1查看 4.4K关注 0票数 3

我在OSX上使用ffmpeg 2.8。

我尝试将一个简短的mp4视频转换为webm,以便像这里所建议的那样进行自适应流,http://wiki.webmproject.org/adaptive-streaming/instructions-to-playback-adaptive-webm-using-dash如下所示:

代码语言:javascript
运行
AI代码解释
复制
VP9_DASH_PARAMS="-tile-columns 6 -frame-parallel 1"

ffmpeg -i t2.mp4 -c:v libvpx-vp9 -s 160x90 -b:v 250k -keyint_min 150 -g 150 ${VP9_DASH_PARAMS} -an -f webm -dash 1 video_160x90_250k.webm
ffmpeg -i t2.mp4 -c:a libvorbis -b:a 128k -vn -f webm -dash 1 audio_128k.webm

ffmpeg \
 -f webm_dash_manifest -i video_160x90_250k.webm \
 -f webm_dash_manifest -i audio_128k.webm \
 -c copy -map 0 -map 1 \
 -f webm_dash_manifest \
 -adaptation_sets "id=0,streams=0 id=1,streams=1" \
 manifest.mpd

然而,这给了我一个警告未指定的像素格式

代码语言:javascript
运行
AI代码解释
复制
[webm_dash_manifest @ 0x7f9414812800] Could not find codec parameters for stream 0 (Video: vp9, none, 160x90): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
video_160x90_250k.webm: could not find codec parameters
Input #0, webm_dash_manifest, from 'video_160x90_250k.webm':
  Metadata:
    encoder         : Lavf56.36.100
  Duration: 00:00:09.97, bitrate: 111 kb/s
    Stream #0:0: Video: vp9, none, 160x90, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      webm_dash_manifest_duration: 9969
      webm_dash_manifest_initialization_range: 437
      webm_dash_manifest_file_name: video_160x90_250k.webm
      webm_dash_manifest_track_number: 1
      webm_dash_manifest_cues_start: 139297
      webm_dash_manifest_cues_end: 139399
      webm_dash_manifest_bandwidth: 99164
      webm_dash_manifest_cluster_keyframe: 1
      webm_dash_manifest_cue_timestamps: 0,2085,4171,6256,8342
Input #1, webm_dash_manifest, from 'audio_128k.webm':
  Metadata:
    encoder         : Lavf56.36.100
  Duration: 00:00:10.01, bitrate: 120 kb/s
    Stream #1:0: Audio: vorbis, 48000 Hz, stereo, fltp (default)
    Metadata:
      webm_dash_manifest_duration: 10009
      webm_dash_manifest_initialization_range: 4697
      webm_dash_manifest_file_name: audio_128k.webm
      webm_dash_manifest_track_number: 1
      webm_dash_manifest_cues_start: 151174
      webm_dash_manifest_cues_end: 151240
      webm_dash_manifest_bandwidth: 105517
      webm_dash_manifest_cluster_keyframe: 1
      webm_dash_manifest_cue_timestamps: 0,4999,9998
Output #0, webm_dash_manifest, to 'manifest.mpd':
  Metadata:
    encoder         : Lavf56.36.100
    Stream #0:0: Video: vp9, none, 160x90 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      webm_dash_manifest_duration: 9969
      webm_dash_manifest_initialization_range: 437
      webm_dash_manifest_file_name: video_160x90_250k.webm
      webm_dash_manifest_track_number: 1
      webm_dash_manifest_cues_start: 139297
      webm_dash_manifest_cues_end: 139399
      webm_dash_manifest_bandwidth: 99164
      webm_dash_manifest_cluster_keyframe: 1
      webm_dash_manifest_cue_timestamps: 0,2085,4171,6256,8342
    Stream #0:1: Video: vorbis, none, q=2-31, 1k tbn, 1k tbc (default)
    Metadata:
      webm_dash_manifest_duration: 10009
      webm_dash_manifest_initialization_range: 4697
      webm_dash_manifest_file_name: audio_128k.webm
      webm_dash_manifest_track_number: 1
      webm_dash_manifest_cues_start: 151174
      webm_dash_manifest_cues_end: 151240
      webm_dash_manifest_bandwidth: 105517
      webm_dash_manifest_cluster_keyframe: 1
      webm_dash_manifest_cue_timestamps: 0,4999,9998
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=    0 fps=0.0 q=-1.0 Lsize=       1kB time=00:00:00.00 bitrate=N/A    
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

然而,清单文件是创建的。我试图指定像素格式:

代码语言:javascript
运行
AI代码解释
复制
-pix_fmt yuv420p

然而,这并没有改变任何事情。警告保持不变。

知道为什么会出现警告,以及如何解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-21 02:55:13

问题似乎是,ffmpeg在使用webm_dash_manifestVP9编解码器时,无法解码几个帧以获得像素格式。它对VP8没有问题。

这发生在信息函数中:

代码语言:javascript
运行
AI代码解释
复制
        ret = read_frame_internal(ic, &pkt1);
        if (ret == AVERROR(EAGAIN))
            continue;

        if (ret < 0) {
            /* EOF or error*/
            break;
        }

read_frame_internal()返回垃圾并阻止代码到达try_decode_frame()部件。

当使用VP8时,它直接从编解码器上下文中检索参数:

代码语言:javascript
运行
AI代码解释
复制
        // Try to just open decoders, in case this is enough to get parameters.
        if (!has_codec_parameters(st, NULL) && st->request_probe <= 0) {
            if (codec && !st->codec->codec)
                if (avcodec_open2(st->codec, codec, options ? &options[i] : &thread_opt) < 0)
                    av_log(ic, AV_LOG_WARNING,
                           "Failed to open codec in av_find_stream_info\n");
        }

st->codec-pix_fmtVP80VP9的是-1 (未找到)。如果它应该直接从上下文中获取参数,那么libvpx-vp9可能有问题。

当直接与ffprobe文件一起使用webm时,它可以工作:

代码语言:javascript
运行
AI代码解释
复制
ffprobe -i video_160x90_250k.webm

Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv), 160x90, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default)

这个问题似乎不会影响显式创建,所以我想您可以忽略这些警告。

我还不太熟悉ffmpeg,所以最好把它报告为ffmpeg跟踪器上的一个bug:http://ffmpeg.org/pipermail/ffmpeg-user/2015-September/028610.html

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32650818

复制
相关文章
授权服务是如何颁发授权码和访问令牌的?
授权服务如何生成访问令牌? 访问令牌过期了而用户又不在场的情况下,又如何重新生成访问令牌?
JavaEdge
2021/02/23
2.9K0
授权服务是如何颁发授权码和访问令牌的?
"Docker 容器命令:解析容器化应用程序的运行时"
镜像是在docker中的,应用是在一个镜像中的,如何在容器中运行一个程序,如果直接使用docker访问是不行的,因为此时的应用只是在某个镜像下启动了,相当于在docker内部,而不是docker本身,此时就需要将镜像中的应用程序的启动端口映射给docker,在docker访问映射端口的时候跳转到容器中启动的程序。
Java学术趴
2023/06/29
3830
"Docker 容器命令:解析容器化应用程序的运行时"
容器运行时
要把进程运行在容器中,还需要有便捷的SDK或命令来调用Linux的系统功能,从而创建出容器。容器的运行时(runtime)就是运行和管理容器进程、镜像的工具。
CNCF
2022/11/28
1.7K0
容器运行时
容器的几种运行时
containerd is a container runtime which can manage a complete container lifecycle - from image transfer/storage to container execution, supervision and networking.
heidsoft
2022/04/18
1.9K0
容器的几种运行时
在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证
API Server 作为 Kubernetes 的网关,是用户访问和管理资源对象的入口。对于每个访问请求, API Server 都需要对访问者的合法性进行检查,包括身份验证、权限验证等等。Kubernetes 支持多种身份验证的方式,本文将对 OpenID Connect 认证进行介绍。
Se7en258
2022/04/18
7K0
在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证
kubernetes API 访问控制之:认证
可以使用kubectl、客户端库方式对REST API的访问,Kubernetes的普通账户和Service帐户都可以实现授权访问API。API的请求会经过多个阶段的访问控制才会被接受处理,其中包含认证、授权以及准入控制(Admission Control)等。如下图所示:
看、未来
2022/06/05
7.3K0
kubernetes API 访问控制之:认证
关于容器和容器运行时的那些事
容器,容器编排,微服务,云原生,这些无疑都是当下软件开发领域里面最热门的术语。容器技术的出现并迅速的广泛应用于软件开发的各个领域里,主要的原因是容器技术革命性的改变了软件开发和部署的基本方式。作为一个架构师,了解容器技术是非常重要的一个话题,我们今天就来聊聊它。
yuanyi928
2020/08/12
1.7K0
关于容器和容器运行时的那些事
使用服务网格增强安全性:Christian Posta探索Istio的功能
Istio帮助使“服务网格”概念变得更加具体和可访问,随着Istio 1.0的最新发布,我们可以预期人们对它的兴趣会激增。Jasmine Jaksic在InfoQ之前的一篇文章中很好地介绍了Istio和服务网格,因此我想借此机会介绍Istio的一个特定领域,它将为云服务和应用程序的开发人员和运营商带来巨大的价值:安全性
程序你好
2018/09/29
1.4K0
使用服务网格增强安全性:Christian Posta探索Istio的功能
Spring Boot+Keycloak从零到壹
在本文中,我们将介绍安装、配置Keycloak服务器的基础知识,如何将Spring Boot应用程序**和Keycloak服务器连接起来,以及在Spring Security下如何使用它。
烟雨平生
2023/03/07
4.4K0
Spring Boot+Keycloak从零到壹
keycloak_keycloak 同步用户表
第一步:下载keycloak安装包 https://www.keycloak.org/downloads
全栈程序员站长
2022/09/19
1.6K0
适用于Java开发人员的微服务:管理安全性和机密
安全性是现代软件系统中非常重要的元素。这是一个巨大的话题,它包含了很多不同的方面,不应该是事后才想到的。要把每件事都做好是很困难的,特别是在分布式微服务体系结构的环境中,尽管如此,在本教程的这一部分中,我们将讨论最关键的领域,并就如何处理它们提出建议。
麦洛
2020/03/27
1.3K0
调试 Docker 容器内部进程
摘要:本文以 Nebula Graph 进程为例,讲解如何不破坏原有容器的内容,也不用在其中安装任何的工具包前提下,像在本地一样来调试进程
NebulaGraph
2020/10/28
1.2K0
开源容器引擎分析;替代docker的容器选择;容器运行时架构
前段时间,听说了k8s对docker支持出现了变动。今天整理服务器进程的时候,出现了与 containerd、lxcfs 相关的 daemon 进行,顿时再次对容器运行时产生了好奇,今天整理一下,进行简单记录:
西湖醋鱼
2020/12/30
1.1K0
开源容器引擎分析;替代docker的容器选择;容器运行时架构
从协议入手,剖析OAuth2.0(译 RFC 6749)
      传统的client-server授权模型,客户端通过使用凭证(通常的用户名和明文密码)访问服务端受保护的资源,为了能够让第三方应用程序访问受保护的资源,需要将凭证共享给第三方。
justmine
2022/05/10
5.1K0
keycloak集群化的思考
单体服务如果想要突破到高并发服务就需要升级为集群服务。同时集群化也为高可用打下了坚实的基础。纵观现在比较流行的服务或者中间件,不管是RabbitMQ还是redis都提供了集群的功能。
用户2323866
2021/06/22
1.3K0
如何解决Transaction 注解,方法内部调用无效问题
Transaction 注解开启事务,是通过代理对象对方法进行封装开启和关闭事务,但生效的的条件是外部调用,而内部调用并不会走代理对象,这就造成了事务失效。
海涛
2020/02/13
1.8K0
Keycloak Spring Security适配器的常用配置
在Spring Security集成Keycloak 适配器时需要引入一些额外的配置属性。一般我们会把它配置到Spring Boot的配置文件中。
码农小胖哥
2021/08/13
2.6K0
容器运行时技术内幕 (小结)
我们知道,虚拟机交付的是操作系统及部分运行时依赖库的一个实例,而容器技术,能够对外交付应用的一个实例,多个docker container可以共用一个操作系统和运行时依赖库。
用户8289326
2022/08/04
3030
容器运行时技术内幕 (小结)
Python运行时动态查看进程内部信息
接前两篇“运行时查看线程信息”的博客,我在想,既然我可以随时打印线程信息,那么我是不是可以随时打印进程内部的其它信息呢?比如,实时查看一些对象属性等,这样可以帮助我们在不重新启动应用程序的情况下就可以观察进程的执行状态。(这里暂时不考虑那些使用第三方库或工具的情况) 根据这个想法,查看了一下python的动态加载模块的方法,感觉这个想法还是比较靠谱,应该可以实现,所以动手写了个小测试验证了一把。(这里说明一下,只是验证性的,生产环境要使用的话,还是有不少问题需要考虑的。) 下面就是测试时考虑要做到的 还是使
kongxx
2018/05/14
2.1K0
docker内部容器自动重启配置。
1.创建容器时没有添加参数 --restart=always ,导致的后果是:当 Docker 重启时,容器未能自动启动。
@凌晨
2020/05/28
3.8K0

相似问题

为什么这个单例实现可以工作?

10

为什么这个objective-c单例可以工作?

16

这个javascript单例是如何工作的?

25

为什么这个单例类代码工作正常?

22

Java单例方法不工作

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档