小编Nov*_*ice的帖子

FFmpeg如何将视频写入文件

我想要的是

 1. Get video packet from stream source
 2. Decode it
 3. And write  that decoded data as video file(avi, mpeg etc)
Run Code Online (Sandbox Code Playgroud)

我可以从文件中获取视频数据包(如AVPacket),也可以解码并保存为图像.(原始)(FFmpeg教程显示如何操作). 但我不能(不知道)将视频数据写入可由媒体播放器(如VLC)播放的文件(其他).

最好的祝愿

Ps:如果可能的话,真正的代码样本会很棒......

现在我用av_interleaved_write进行测试, 但我得到了奇怪的错误"非单调时间戳"(我无法控制媒体源的pts值)

一些额外的信息

在FFmpeg,我必须

  1. 从媒体源读取媒体数据包(可能是真实文件(.avi,mov)甚至是rtsp服务器).
  2. 然后将这些媒体数据包写入真实文件(物理.avi,.mov等文件)

我需要读者和作家.我可以读取媒体源文件(甚至根据给定的格式对数据包进行编码).但是我不能写文件......(任何玩家都可以玩)

还有一些伪代码

File myFile("MyTestFile.avi");

while ( source ->hasVideoPackets)
{
     packet = source->GetNextVideoPacket();
     Frame decodedFrame = Decode(packet);
     VideoPacket encodedPacket = Encode( decodedFrame);
     myFile.WriteFile(encodedPacket);
 }
Run Code Online (Sandbox Code Playgroud)

或者只是编写没有编码解码的原始文件

     File myFile("MyTestFile.avi");

     while ( source ->hasVideoPackets)
     {
         packet = source->GetNextVideoPacket();
         myFile.WriteFile(packet);
     }
Run Code Online (Sandbox Code Playgroud)

然后

I can able to …
Run Code Online (Sandbox Code Playgroud)

c ffmpeg

13
推荐指数
1
解决办法
2万
查看次数

FFmpeg硬件加速 - > GPU + DirectShow

是否有FFmpeg的硬件加速版本(例如,使用GPU的版本)?

此外,是否有人使用FFmpeg支持GPU?可能用于缩放和转换视频格式?或者,例如,使用DirectShow进行图像缩放并在曲面上显示图像?如果是这样,任何人都可以提供小代码样本?

directshow gpu ffmpeg directshow.net

11
推荐指数
1
解决办法
8018
查看次数

在同一个解决方案中为同一个项目添加相同的"*.dll"引用

我有一个Visual Studio 2008 .NET C++/CLI解决方案.我的解决方案包含许多子项目.我为每个项目定义了一个自定义的buid目录,称之为Output.

MySoultion

  • MyFirstProject(*.exe)
  • MySecondPrject(*.dll)
  • ...
  • MyNthProject(*.dll)

每个子项目都使用Log4.net.所以我创建了一个目录(称为LogBinary)并将log4.net dll放在该文件夹中.然后使用log4net我添加这个dll作为我的每个项目的引用...但是当我尝试编译我的主项目(*.exe)我收到了大量警告(超过400 ...)

举个例子:

警告110警告C4945:'AbsoluteTimeDateFormatter': 无法从 'somepath\log4net.dll' 导入符号:因为'log4net :: DateFormatter :: AbsoluteTimeDateFormatter' 已经从另一个程序集 'log4net'"somepath\log4net.dll" 导入

很多警告

已经从另一个程序集导入

为什么我收到这个警告?是否有人为多个项目添加相同的dll(使用GAC除外)

最好的祝愿

.net dll gac log4

10
推荐指数
2
解决办法
4126
查看次数

NHibernate + WCF + Windows服务和WcfOperationSessionContext类

  • 我有一个Windows服务应用程序,我在其中创建WCF服务.
  • 其中一项服务是数据服务:通过WCF添加,删除,读取,更新数据.
  • WCF使用NHibernate进行数据操作

所以我的猜测是:

  • Hibernate使用WCF进行会话管理的任何建议(最佳实践)?

  • 任何人都知道

WcfOperationSessionContext(hibernate 3.0)类?

how to use it with WCF?
Run Code Online (Sandbox Code Playgroud)

好吧,使它具体化:

假设我有一个名为DataServices的 WCF服务

class WCFDataService .....
{

   void SaveMyEntity(MyEntity entity)
    {



         .....................?? // How to do? Best Way

         // Should i take one session  and use it all times
         // Should i take session and dipsose when operation finished then get 
         //new session for new operations?
         // If many clients call my WCF service function at the same time?
         // what may go wrong? …
Run Code Online (Sandbox Code Playgroud)

nhibernate wcf nhibernate-3

7
推荐指数
3
解决办法
5624
查看次数

5
推荐指数
3
解决办法
2万
查看次数

使用 ffmpeg 将流写入文件时出现“无效的、非单调递增的 dts”错误

我终于能够使用该功能将视频流数据包写入文件

av_interleaved_write_frame(outputContext, &packet);
Run Code Online (Sandbox Code Playgroud)

但过了一小段时间后,我收到了这个错误:

Application provided invalid, non monotonically increasing dts to muxer 
in stream 0: *numberX* >= *numberY*
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法,是什么导致了这个以及如何解决它?

ffmpeg

5
推荐指数
1
解决办法
4935
查看次数

标签 统计

ffmpeg ×4

.net ×1

c ×1

directshow ×1

directshow.net ×1

dll ×1

gac ×1

gpu ×1

log4 ×1

nhibernate ×1

nhibernate-3 ×1

rtsp ×1

rtsp-client ×1

wcf ×1