Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 给定一个x264流和一个ogg vorbis流,如何生成mplayer/VLC可以读取的混合流?_C++_Ogg_X264_Multiplexing_Libx264 - Fatal编程技术网

C++ 给定一个x264流和一个ogg vorbis流,如何生成mplayer/VLC可以读取的混合流?

C++ 给定一个x264流和一个ogg vorbis流,如何生成mplayer/VLC可以读取的混合流?,c++,ogg,x264,multiplexing,libx264,C++,Ogg,X264,Multiplexing,Libx264,我对这个问题感到困惑和困惑。我在谷歌上能找到的只是转码软件的基本用法,这与问题无关 我正在做一个游戏,我想包括本地捕获能力流视频。我非常希望将其流式传输到标准ish客户端,例如VLC。它需要以一种它能识别的格式,并且需要多路复用才能工作 因此,我的问题是,我知道如何将原始视频帧中的内容编码到x264(另请参阅)。我知道如何将原始音频样本编码到ogg/vorbis中。现在,如何为VLC将一和一放在一起?x264不是流格式。这是一个软件。该软件将视频编码为H.264视频格式。另外,它不会将视频+音频

我对这个问题感到困惑和困惑。我在谷歌上能找到的只是转码软件的基本用法,这与问题无关

我正在做一个游戏,我想包括本地捕获能力流视频。我非常希望将其流式传输到标准ish客户端,例如VLC。它需要以一种它能识别的格式,并且需要多路复用才能工作


因此,我的问题是,我知道如何将原始视频帧中的内容编码到x264(另请参阅)。我知道如何将原始音频样本编码到ogg/vorbis中。现在,如何为VLC将一和一放在一起?

x264
不是流格式。这是一个软件。该软件将视频编码为H.264视频格式。另外,它不会将视频+音频多路复用到MP4或AVI容器文件中。查看ffmpeg/libav以获得完整的套件。还有其他用于多路复用视频和音频流的程序

这是我做的一个实验:

youtube-dl "http://www.youtube.com/watch?v=0Bmhjf0rKe8"
avconv -i 0Bmhjf0rKe8.flv -vn -c:a libvorbis -b:a 64k 0Bmhjf0rKe8.ogg
avconv -i 0Bmhjf0rKe8.flv -c:v copy -bsf:v h264_mp4toannexb -an 0Bmhjf0rKe8.h264
avconv -i 0Bmhjf0rKe8.h264 -i 0Bmhjf0rKe8.ogg -c copy 0Bmhjf0rKe8.mkv
mplayer 0Bmhjf0rKe8.mkv
avconv -i 0Bmhjf0rKe8.flv -i 0Bmhjf0rKe8.ogg -c copy -map 0:0 -map 1:0 0Bmhjf0rKe8.mp4
mplayer 0Bmhjf0rKe8.mp4

您应该能够使用libav以编程方式实现这一点。

不,完全正确。它返回一个H.264帧流(iirc)。Ogg/vorbis组件返回完整的Ogg流。我怎么把这些东西装进什么样的容器?IFAIK Ogg容器不支持H.264。MP4容器支持Vorbis音频。ffmpeg/libav应该可以多路复用MP4。在互联网和谷歌(Google)上发布受版权保护材料的人更喜欢Matroska容器。我会考虑这个问题,尽管ffmpeg/libav可能也会这样做。好吧,ogg不支持H.264。基本上,我并不在乎它是什么容器,只要VLC支持它。任何其他的支持都是一个不错的奖励。AVI非常古老,但也可以,但比MKV支持范围更广。不过,您列出的这些示例似乎非常有用,我将对此进行研究。谢谢