如何使用FFMPEG与C拦截编码的视频数据
How can I intercept encoded video data using ffmpeg with C?
首先,我希望您能理解我不良的英语技能。我会尽力写有关它的问题。
我目前正在开发一些应用程序。该应用程序将捕获桌面并编码MP4视频,并将MP4视频数据/块发送给另一个客户端(所有此过程都应在内存中运行,而不是文件)。因此,另一个客户应该可以播放从服务器接收的MP4视频/数据/块。
因此,我使用了avio = avio_open(...)
,并将重新签名的写功能像avio->write_packet = some_function
一样。但是这种方式似乎无法正确正确地"生成" MP4文件/块。似乎原始的write_packet
回调具有将数据包写入文件的实际逻辑。但是我不想写入文件。所以我在考虑一个星期,但我没有对此有任何想法。
所以我的问题是:i intercept "编码"视频数据应该由avio->write_packet
?
不要劫持 avio_open
的aviocontext,这必然会造成麻烦。如果要提供自定义的Aviocontext,请使用 - 使用avio_alloc_context
并在此处提供回调。使用标志AVFMT_FLAG_CUSTOM_IO
表示您这样做(因此,当Muxer关闭时,此aviocontext不会自动破坏)。
相关文章:
- 如何在c++中录制具有精确帧时间戳的视频
- 使用已使用 java 编码的 openssl 解码数据
- 如何在CPP的给定目录中列出UTF编码的文件名?
- 将C++ std::string 转换为 UTF-16-LE 编码的字符串
- 使用 IMFSinkWriter 编码的视频的播放速度会根据宽度而变化
- 如何在没有硬编码的情况下以C++为单位获取类数组的长度?
- Xerces-C 使用硬编码的 xsd 验证 xml
- 如何在 c++ 中读取用 utf-8 编码的 java unicode 字节字符串
- 如何实时捕获相机的视频?
- 使用OpenSSL将P1363编码的签名转换为ECDSA_SIG
- 帧提取 使用OpenCV的视频文件开头只有几秒钟
- 将二进制编码的无符号字符转换为整数
- 使用 OpenCV C++ 每 1 分钟创建新的视频文件
- 如何C++ WCOUT UTF-16 编码的字符数组?
- 从iPhone相机拍摄的视频似乎被OpenCV旋转了90度?我该如何解决这个问题?
- 在何处更改参考代码以从 HEVC 编码的视频中提取运动矢量
- 如何使用FFMPEG从编码的视频中提取AVPACKET的重要信息
- 如何使用FFMPEG与C拦截编码的视频数据
- FFMpeg编码的视频将只在FFPlay中播放
- 基于DCT的视频编码过程