小编Yur*_*yma的帖子

如何将视频的所有帧替换为一张图像?

我有一些影片,我想将该视频中的所有帧替换为我的静态图像。使视频时长、分辨率(宽度、高度)、声音和其他属性保持不变。

video ffmpeg video-streaming

7
推荐指数
1
解决办法
3006
查看次数

创建一个mpeg-dash段

我有用mpeg-dash编码的视频(*.mpd,init段,视频片段)任务是用我生成的片段替换其中一个视频片段.所以视频仍然可以播放.

我使用了读取一个段的属性(组合init段和视频段)

avformat_open_input
avformat_find_stream_info
Run Code Online (Sandbox Code Playgroud)

1)我曾尝试使用dash muxer生成新的段.

avformat_alloc_output_context2(&avFormatContext, NULL, "dash", filename)
Run Code Online (Sandbox Code Playgroud)

但问题是它创建了mpd清单和其他段.那么如何强制它创建一个细分?

2)当我解析段时,我注意到它的格式为"QuickTime/MOV".

avformat_alloc_output_context2(&avFormatContext, NULL, "mov", filename);
Run Code Online (Sandbox Code Playgroud)

所以我的另一个想法是使用"mov"编码器.并设置与初始段(开始时间,持续时间,分辨率)相同的属性.但这里的问题是如何删除init标头?因为我已经有了init段.

有没有其他方法来生成一个mpeg-dash段以及如何解决我的问题?

c++ ffmpeg libavcodec libav mpeg-dash

6
推荐指数
0
解决办法
427
查看次数

std :: end for unique_ptr <T []>

我想为唯一指针实现std :: end.问题是我必须得到N(数组中的元素数).

1.从模板中推导出推断类型

template <typename T, size_t N>
T* end(const unique_ptr<T[N]> &arr)
{
    return arr.get() + N;
}
Run Code Online (Sandbox Code Playgroud)

但我得到错误错误:C2893:无法使用[_Ty = T [N]]专门化函数模板'T*test :: end(const std :: unique_ptr>&)'使用以下模板参数:'T = int' 'N = 0×00'

看起来不可能推断出N.

2.从分配器获取N. 分配器必须知道N才能正确执行delete [].您可以在本文中阅读此内容.有两种方法:

  1. 过度分配数组并将n放在左侧.

  2. 使用关联数组,其中p为键,n为值.

问题是如何获得这个大小跨平台/编译器.

也许有人知道更好的方法或知道如何使这个工作?

c++ c++11

3
推荐指数
1
解决办法
315
查看次数

标签 统计

c++ ×2

ffmpeg ×2

c++11 ×1

libav ×1

libavcodec ×1

mpeg-dash ×1

video ×1

video-streaming ×1