首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FFMPEG :将Matroska muxed数据重定向到套接字

FFMPEG :将Matroska muxed数据重定向到套接字
EN

Stack Overflow用户
提问于 2014-10-22 05:47:24
回答 2查看 641关注 0票数 0

我正在使用FFMPEG库,以muxH.264和AAC帧到Matroska (.mkv)文件。我可以使用命令行和C程序来做到这一点。

现在,我不想将matroska数据写入文件中,而是直接将这些muxed数据写到套接字或管道上。我的实际目标是编写一个C程序,将多个数据发送到套接字,然后服务器将接收这些被屏蔽的数据。

我试过使用tcp协议。他们正在使用matroska格式。因此,我的C程序能够成功地通过套接字发送多个数据,而服务器能够接收到这些被屏蔽的数据。

但是,当我对接收到的文件应用ff探针命令时,我得到的是工期和比特率字段N/A,当我试图使用vlc播放该文件时,我无法查找该文件并获得垃圾持续时间。

在of探头的输出下面。

代码语言:javascript
复制
ffprobe version N-65784-g50a35f0 Copyright (c) 2007-2014 the FFmpeg developers
  built on Aug 25 2014 12:31:36 with gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1)
  configuration: 
  libavutil      54.  5.100 / 54.  5.100
  libavcodec     56.  0.101 / 56.  0.101
  libavformat    56.  1.100 / 56.  1.100
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  0.101 /  5.  0.101
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
Input #0, matroska,webm, from 'Array.mkv':
  Metadata:
    ENCODER         : Lavf54.29.104
  Duration: N/A, start: 1412858260.281000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg), 2000x1496 [SAR 1:1 DAR 250:187], 27 fps, 27 tbr, 1k tbn, 1k tbc (default)
    Stream #0:1: Video: mjpeg, yuvj422p(pc, bt470bg), 2000x1496 [SAR 1:1 DAR 250:187], 27 fps, 27 tbr, 1k tbn, 1k tbc (default)
    Stream #0:2: Video: mjpeg, yuvj422p(pc, bt470bg), 2000x1496 [SAR 1:1 DAR 250:187], 27 fps, 27 tbr, 1k tbn, 1k tbc (default)
    Stream #0:3: Video: mjpeg, yuvj422p(pc, bt470bg), 2000x1496 [SAR 1:1 DAR 250:187], 27 fps, 27 tbr, 1k tbn, 1k tbc (default)

正如您所看到的,工期和比特率字段显示了N/A。然而,我得到了正确的startTime。

有什么帮助或建议吗?提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-22 07:45:08

这不太可能奏效,因为:

  • Muxing文件并不意味着所有的东西都是按顺序写入文件的。MKV元搜索块和Cue块(玩家需要寻找)可能只在生成整个文件之后才更新。事实上,根据MKV规范的说法,Cue块位于MKV的末尾,所以只有在编写了几乎整个文件之后才生成
  • 在流上运行ff探头并不适用于所有的容器格式,因为这意味着ff探针不能随机地访问文件内容。它可以处理在其开头放置元信息的文件(例如处理MP4),但不会像您预期的那样在MKV这样的格式下工作。
票数 2
EN

Stack Overflow用户

发布于 2014-10-22 08:59:18

对于mp4,它的容器需要在文件开始时写入其他信息。这件事不能用网络套接字来完成。所以我们不能在这里使用MP4容器。

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

https://stackoverflow.com/questions/26501015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档