我正在寻找一种方法来从 DV AVI 文件中检索或提取录制的时间戳。时间戳应该是 AVI 文件元数据的一部分。这些文件最初是从 DV 导入到 PC 和 AVI 包装器中的 DV 格式。
提供 API 或命令行工具的库就可以了。我将在 Mac 上使用它,但适用于 Linux 的开源工具也可以。
码:
A = aviread('firstAttempt_1395344631.avi');
Run Code Online (Sandbox Code Playgroud)
响应:
Error using VideoReader/init (line 447)
Failed to initialize internal resources.
Error in VideoReader (line 132)
obj.init(fileName);
Error in untitled (line 1)
A = VideoReader('firstAttempt_1395344631.avi');
Run Code Online (Sandbox Code Playgroud)
有什么建议?我无法使用aviread,因为我收到了回复:
Error using aviread (line 148)
Only uncompressed AVI movies can be read on UNIX.
Error in untitled (line 1)
A = aviread('firstAttempt_1395344631.avi');
Run Code Online (Sandbox Code Playgroud) 我有 2 个视频,我想在分屏中并排播放。它们具有相同的持续时间和维度。我找到了几年前开发的代码来完成这项工作。问题是,它充满了错误,可能是因为我使用的是较新的 Matlab 版本(2014a)。错误从 (%name of the new avi file) 开始。
任何人都可以尝试修复它:
% select two files:
[filename1,pathname1] = uigetfile('.avi','pick first AVI file');
[filename2,pathname2] = uigetfile('.avi','pick second AVI file');
file1 = fullfile(pathname1,filename1);
file2 = fullfile(pathname2,filename2);
pdMovie1 = aviread(file1);
pdMovie2 = aviread(file2);
fileinfo1 = aviinfo(file1);
fileinfo2 = aviinfo(file2);
% check if AVI files have the same length and height:
if fileinfo1.NumFrames~=fileinfo2.NumFrames || ...
fileinfo1.Height~=fileinfo2.Height
errordlg('files are not compatible!')
else
% inspired by Herbert Ramoser in Message-ID:
% <art0c0$l9fip$1@ID-148798.news.dfncis.de>
for i=1:size(pdMovie1,2)
output(i).cdata …
Run Code Online (Sandbox Code Playgroud) 所以,我想简单地采用我通过 制作的现有图plt.plot(x,y)
,将其转换为“图像”,以便我可以通过以下方式将其提供给 OpenCV 的视频编写者:
cv2.VideoWriter('myMovie.avi', fourcc, 20.0, (640,480))
writer.write(image)
Run Code Online (Sandbox Code Playgroud)
我的问题是,鉴于我已经绘制的图形,我如何获得“图像”?
谢谢。
A 手里有一大堆.avi
文件,我想将它们转换为.mp4
. 将我在互联网上找到的所有内容拼凑在一起,最终得到如下结果:
ffmpeg -i something.avi -c:v copy -c:a copy something.mp4
Run Code Online (Sandbox Code Playgroud)
我得到的内容可以在 VLC 播放器上播放,但是,当然,它可以播放我所经历的任何内容。但是,我无法使用 Finder 中的 QuickLook 或 QuickTime 播放器来播放它。
在某些情况下,我会收到视频,但没有声音。在其他一些情况下,我会收到乱码的视频。
我猜测.avi
文件内的音频或视频编解码器与 MacOS 不兼容,并且copy
上面的说明不合适。在这种情况下,我想我实际上需要重新编码音频或视频。
如果这听起来不连贯,我承认我对视频文件知之甚少。
尝试制作可在 MacOS 上本地运行的 MP4 的最佳设置是什么?
我写了这样简单的代码:
VideoView v = (VideoView) findViewById(R.id.videoView);
MediaController mc = new MediaController(this);
mc.setAnchorView(v);
mc.setMediaPlayer(v);
v.setMediaController(mc);
v.setVideoPath("/sdcard/media/video/1.avi");
v.start();
Run Code Online (Sandbox Code Playgroud)
我的问题是这个代码.avi文件根本无法播放.Logcat向我展示了这些字符串:AudioFlinger:写入阻塞209毫秒,11个延迟写入,线程0x15440 MP3Extractor:无法重新同步.信号流结束.
请告诉我,如果不正确,我怎么能播放avi文件.
PS是的,我知道,默认情况下,Android上不支持avi,但我也知道有很多玩家可以玩它.
我想在网络浏览器中播放AVI文件,但我似乎无法找到一个合适的工具.
基本的WMP对象嵌入是我现在正在使用的,但它并没有真正做我想做的事情,我无法真正实现JavaScript.(AFAIK我不能.我做了一点挖掘,这就是我得出的结论)
虽然我不喜欢它,但我也尝试过DivX.它有广告,我也不知道是否也可以包含JavaScript.
AFAIK Flash根本不支持AVI播放.
有没有人知道任何可以在网络上播放AVI文件的播放器,我可以将某种JavaScript集成到(或有API)中?
只是一个想法,但Java本身会有这样的东西吗?
播放器还需要能够像这样来源文件:
file:\\Network-PC-Name\avi\avifile.avi
我一直在尝试让 emgu 将相同的网络摄像头视频保存到文件中
问题是opencv只支持avi,avi好像不太适合X264这样的格式。
我可以使用 Gstreamer 在 C 中为我做这件事吗?
如果我也可以选择文件格式和容器类型就好了。如果我能使用像薛定谔狄拉克这样的格式就好了。
我是 GStreamer 的新手,所以我不太确定我在这里是否走在正确的轨道上。
编辑
我已经设法使用捕获网络摄像头视频
gst-launch-0.10 ksvideosrc !自动视频接收器
现在如何将其转码为 H264 或 dirac 等格式?
编辑
gst-launch-0.10 ksvideosrc num-buffers=10 !解码器2!ffmpeg 色彩空间!x264enc!matroskamux !文件接收器位置=video.mkv
这似乎创建了一个文件,但 VLC 播放器无法读取它。
我想在matlab中制作多部电影
for i=1:5
%calculate a movie-array H (gridsize depends on i)
number=num2str(i);
movie2avi(H, 'movie_'+number+'.avi');
end
Run Code Online (Sandbox Code Playgroud)
显然它不起作用,我在matlab中找不到多个电影制作.知道如何更改此命令中的文件名以生成不同的电影文件而不是覆盖一个文件?