gpt4 book ai didi

c - FFMPEG : Redirecting Matroska muxed data to socket

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:43 24 4
gpt4 key购买 nike

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

现在,我不想将混合的 matroska 数据写入文件,而是想将这些混合的数据直接写入套接字或管道。我的实际目标是编写一个 C 程序,将混合数据发送到套接字,服务器将接收该混合数据。

我尝试使用协议(protocol) tcp。他们正在使用 matroska 格式。因此,我的 C 程序能够通过套接字成功发送多路复用数据,并且服务器能够接收到该多路复用数据。

但是当我对接收到的文件应用 ffprobe 命令时,我得到了持续时间和比特率字段 N/A。当我尝试使用 vlc 播放此文件时,我无法找到该文件并获取垃圾持续时间。

在 ffprobe 的输出下方。

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。但是我得到了正确的开始时间。

有任何帮助或建议吗?提前谢谢你。

最佳答案

这不太可能奏效,因为:

  • 混合到 MKV 文件并不意味着所有内容都按顺序写入文件。 MKV Meta Seek block 和 Cue block (播放器需要查找)可能仅在生成整个文件后才更新。事实上根据MKV spec Cue block 位于 MKV 的末尾,因此它仅在几乎整个文件已写入后生成。

  • 在流上运行 ffprobe 不适用于所有容器格式,因为这意味着 ffprobe 无法随机访问文件内容。它可能适用于在其开头放置元信息的文件(例如 qt-faststart 处理的 MP4),但不会像您预期的那样使用 MKV 等格式。

关于c - FFMPEG : Redirecting Matroska muxed data to socket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26501015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com