C#对远程桌面广播应用进行更好的压缩
我正在创建TCP远程桌面广播应用程序的过程. (像团队查看器或VNC之类的东西) 服务器应用程序将 1. run on a PC listening for multiple clients on one Thread 2. and on another thread it will record the desktop every second 3. and it will broadcast the desktop for each connected client. 我需要使此应用程序成为可能,以在12kbps上传和50kbps下载DSL Connection(客户端和服务器)上运行. so ..我必须减小我每秒发送的数据/图像的大小. 我试图通过以下内容减少. I. first i send a Bitmap frame of the desktop and each other time i send only the difference of t
4 2024-04-21
编程技术问答社区
FFmpeg可以作为一个库,而不是一个独立的程序来使用吗?
我想将视频转换功能添加到我正在编写的程序中. FFMPEG的命令行接口仅仅是ffmpeg -i InputFile OutputFile,但是有没有办法将其用作库,所以我可以做类似ffmpeg_convert(InputFile, OutputFile)>? 之类的事情. 我希望我不必直接使用libavcodec,因为我想它比在格式之间转换的单行功能要复杂得多.如果不能轻易地对FFMPEG进行翻新,那么是否还有另一个基于它的库?我听说过libvlc,但这似乎只暴露了视频播放 api,而不是视频转换. 解决方案 您需要libavcodec和libavformat. 4.1是否有示例说明如何使用ffmpeg库,特别是libavcodec和libavformat? 是.在源存储库中查看DOC/示例目录,也可以在线提供: https:https:https:https:https:https:https:https:https://github.com/ffmpeg/ffmp
12 2024-04-06
编程技术问答社区
在复用附件B的MPEG-TS时,SPS和PPS的音频等同物?什么是 "DecoderInfo"?
我正在使用 bento4 库库来mux a nender a nender b ts(mpeg-2传输流)文件我的H264视频和AAC音频流分别是从录像带和Avoundation生成的,作为HLS(HTTP Live Streaming)流的源数据.这个问题不一定是特定于Bento4的:我正在尝试理解基本概念,以便我可以通过使用Apple Libs来完成任务. . 到目前为止,我已经弄清了如何通过从我的CMVideoFormatDescriptionRef中获取各种数据来创建AP4_AvcSampleDescription,最重要的是,通过分别使用CMVideoFormatDescriptionGetH264ParameterSetAtIndex的索引0和1生成SPS和PPS来创建SPS和PPS.我可以将字节缓冲区粘在Bento4中.太好了,这就是我需要的所有标题信息,以便我可以要求Bento4将视频介绍到TS文件中! 现在,我正在尝试将音频插入同一文件中.我正在使用我的CMA
8 2024-03-21
编程技术问答社区
使用GStreamer将安卓相机作为H264 mpeg-ts流经UDP
我对GSTREAMER没有太多的经验,我找不到在线弄清楚的东西. 我正在使用我陷入了管道上,那里有两个工作管道,我无法合并一起工作. 原始OpenSource的管道: "ahcsrc ! queue ! glimagesink name=vsink sync=false" (当AHCSRC代表Android-Hardware-Camera-SRC时) 和我的测试管道: "videotestsrc ! decodebin ! x264enc bframes=2 ! mpegtsmux ! udpsink host=192.168.102.74 port=1234" 两个都很好. 我的目标是采用我的测试管道,然后将videotestsrc切换到AHCSRC,如: "ahcsrc ! decodebin ! x264enc bframes=2 ! mpegtsmux ! udpsink host=192.168.102.74 port=1234"
8 2024-02-06
编程技术问答社区
从安卓上的摄像头录制视频到mp4
firemonkey(delphi xe6)中似乎有TVideoCaptureDevice,但是在官方文档中,捕获过程最终出现在行上: if(VideoCamera){ //do something } 我该怎么做才能在飞行中录制视频到MP4?尝试在Google上查看,但没有找到任何答案... 解决方案 请参阅以下DOCWIKI以获取答案(类似). xe7 当然,这里的"捕获"一词的意思是,获取视频输入并将其放在显示屏上. "录制"是指将框架加在一起制作电影文件. 人们在 上向我提供了以下代码 flashavconverterter 在这里发布,并在此处发布: uses Androidapi.JNI.GraphicsContentViewText; const RECORD_VIDEO = 9; implementation uses System.IOUtils, Androidapi.JNI.Provider,
8 2024-01-29
编程技术问答社区
MPEG4压缩是如何工作的?
任何人都可以简单地解释MPEG4如何压缩数据的方式.我对视频最感兴趣.我知道有不同的标准或零件.我只是在寻找主要的总体压缩方法,如果有mpeg4. 解决方案 MPEG-4是一个巨大的标准,并且采用许多技术来达到其能够的高压率. 通常,视频压缩涉及丢弃尽可能多的信息,同时对最终用户的观看体验产生最小的影响.例如,使用YUV代替RGB将视频尺寸切成一半.这是可能的,因为人眼对颜色不太敏感,而不是对亮度.在YUV中,Y值是亮度,U和V值代表颜色.因此,您可以丢弃一些降低文件大小的颜色信息,而不会注意到任何差异. 之后,大多数压缩技术尤其利用了2个冗余.第一个是时间冗余,第二个是空间冗余. 时间冗余指出,视频序列中的连续帧非常相似.通常,视频每秒的顺序为20-30帧,而一秒钟的1/30没有太大变化.取任何DVD并暂停它,然后将其移动在一个框架上,并注意2个图像的相似之处.因此,MPEG-4(和其他压缩标准)并没有独立编码每个帧,而仅编码连续帧之间的差异(使用运动估计找到
16 2024-01-22
编程技术问答社区
将Mpeg文件转换为flv并同时在flash cs3中使用as3播放转换后的文件
我有一个MPG文件,我想将其转换为FLV格式,但是我需要在转换MPG文件时,我还必须同时在Flash CS3中播放转换的FLV文件.怎么做?我正在使用CS3和AS3. 解决方案 如果要编程转换文件,请使用 ffmpeg .这是一个命令行工具,可以将视频文件转换为几乎所有内容.您必须使用正确的参数执行FFMPEG,然后等到视频准备就绪.这仅在服务器上起作用.表示Flash客户端将视频文件加载到服务器.那里被转换了.您可以使用任何" php"(例如php.)执行FFMPEG. 可悲的是,我不知道是否可以在转换时观看视频.我认为不是,但也许别人知道更多.
16 2024-01-10
编程技术问答社区
mpeg-ts文件音频和视频框架长度
我可以在mpeg2 ts文件中发现每个视频的字节长度(i,p,b)和音频框架,而不是读取字节字节(例如,来自nal单位标头)? 解决方案 在MPEG-TS文件中,在PES层中,有一个称为" PES长度"的字段,其中包含所有数据,但没有PES标头.要准确提取此信息,您必须了解是否每个框架有PES标头. las,在视频中,此字段通常保留为0,而计算每个帧字节的唯一真正方法是在ES级别的视频启动代码之间.
16 2023-11-18
编程技术问答社区
FFmpeg-Requested output format 'mpeg' is not a suitable output format
我正在尝试使用FFMPEG将视频从MP4格式转换为MPEG,以便我可以合并多个视频.我有一个自定义的ffmpeg构建,其中我控制配置选项: ffmpeg -y -i VID_20150514_171122_12085.mp4 -an -f mpeg VID_20150514_184208.mp4.0.mpg ffmpeg version git-2015-02-25-b0d3322 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 4.8 (GCC) configuration: --arch=arm --cpu=cortex-a8 --target-os=linux --enable-runtime-cpudetect --enable-pic --disable-shared --enable-static --cross-prefix=/home/jon/Development/android-n
34 2023-11-18
编程技术问答社区
如何在OpenCV中获取MPEG文件格式
我正在使用openCV及其功能以" .mpeg"(而不是.avi)中的单独文件格式录制视频.尽管我根据其他Web参考更改了视频的编解码器和大小.但我也安装了FFMPEG.但是,对于每个编解码器的变化,我都会遇到相同的错误. [[openCV:ffmpeg:tag 0x314d4950/'pim1'不支持编码器ID 1和格式'mpeg/mpeg-1 systems/mpeg program stream' [mpeg1video @ 0x1dac700] mpeg1/2不支持10/1 fps 无法打开编解码器'mpeg1video':未指定错误]] \\writeVideo = new VideoWriter(videoFileName, CV_FOURCC('M','P','E','G') , 10, Size(640,480),true); . . . . strcat(newVideofilename," .mpeg"); 我希望以mpeg/mpg格式使用视频
14 2023-11-18
编程技术问答社区
对MPEG-2视频进行程序化转码
我需要能够编程将MPEG-2文件传输到.mp4,.mp3,.wmv,.rm(可选)和.flv(可选),并希望也会生成缩略图.我找到了Java媒体框架,但坦率地说,它看起来很糟糕.这将运行Linux服务器,因此我可以使用Commons Exec向FFMPEG弹出 - FFMPEG是否可以做我需要做的一切? FFMPEG似乎很艰巨,这就是为什么我很难找到这些信息,但这似乎是一个全面的贸易.有什么建议吗? 解决方案 ffmpeg是最好和最简单的.输出/转换视频: ffmpeg -i {input}.ext -r {target_frame_rate} -ar {target_audio_rate} -b {target_bitrate} -s {width}x{height} {target}.ext 和您的屏幕截图: ffmpeg -i {input}.ext -r 1 -ss 00:00:04:005 -t 00:00:01 -an -s {width}x{heig
18 2023-11-18
编程技术问答社区
MPEG4压缩是如何工作的?
任何人都可以简单地解释MPEG4如何压缩数据的方式.我对视频最感兴趣.我知道有不同的标准或零件.我只是在寻找主要的总体压缩方法,如果有mpeg4. 解决方案 MPEG-4是一个巨大的标准,并且采用许多技术来达到其能够的高压率. 通常,视频压缩涉及丢弃尽可能多的信息,同时对最终用户的观看体验产生最小的影响.例如,使用YUV代替RGB将视频尺寸切成一半.这是可能的,因为人眼对颜色不太敏感,而不是对亮度.在YUV中,Y值是亮度,U和V值代表颜色.因此,您可以丢弃一些降低文件大小的颜色信息,而不会注意到任何差异. 之后,大多数压缩技术尤其利用了2个冗余.第一个是时间冗余,第二个是空间冗余. 时间冗余指出,视频序列中的连续帧非常相似.通常,视频每秒的顺序为20-30帧,而一秒钟的1/30没有太大变化.取任何DVD并暂停它,然后将其移动在一个框架上,并注意2个图像的相似之处.因此,MPEG-4(和其他压缩标准)并没有独立编码每个帧,而仅编码连续帧之间的差异(使用运动估计找到
20 2023-11-18
编程技术问答社区
在Flash/Actionscript中播放.mpg视频
是否可以加载.mpg文件并通过actionscript/flash? 播放它 该代码与MP4视频文件效果很好.如果无法播放MPG文件,那么使其工作的一种方法是转换这些文件? package { import flash.net.NetConnection; import flash.net.NetStream; import flash.events.AsyncErrorEvent; import flash.media.Video; import se.svt.caspar.template.CasparTemplate; public class data extends CasparTemplate { var nc:NetConnection; var ns:NetStream; var vid:Video; var textfield:TextField
14 2023-11-18
编程技术问答社区
如何以编程方式创建视频?
是否有一个免费的库来创建图像序列中的mpeg(或任何其他简单的视频格式)? 它也必须在Linux上运行,理想情况下具有Python绑定. 解决方案 我知道有 mencoder (Mplayer Project的一部分) and ffmpeg ,这两者都可以做到这一点. 其他解决方案 通常是从命令行中使用的,但这实际上只是其内部库周围的包装器.明确可用还有还有其他解决方案
28 2023-11-18
编程技术问答社区
mpeg-2库提取视频时长
我最近冒险处理音频和视频相关编码,我对它们俩的了解有限. 碰巧我有一个正在处理MPEG-2视频的项目.是否有可用的Python库来提取MPEG-2视频的持续时间? 解决方案 我不知道任何纯Python实现.但是也许OpenCV绑定对您有用: import cv cvcapture = cv.CaptureFromFile("movie.mpg") cv.GetCaptureProperty(cvcapture,cv.CV_CAP_PROP_FRAME_COUNT) 否则,您可以使用pyffmpeg.当心:我的经验是,框架计数通常不是很准确. OpenCV 2.6运行良好,但是Ealier版本有时会提供垃圾. 编辑:啊,对不起,我的错误:这仅给您框架计数.在持续时间:将其乘以帧速率: cv.GetCaptureProperty(cvcapture,cv.CV_CAP_PROP_FPS) 其他解决方案 除了OpenCV或FFMPEG之外,还有Gstr
22 2023-11-18
编程技术问答社区
爪哇。如何从一个图像数组中创建一个电影?
我基本上具有字节矩阵.每个行(含义byte [])代表图像.如何从该电影中创建电影(任何格式-Avi,mpeg等)并将其保存为文件? 每个图像可以是以下之一: int JPEG Encoded formats. int NV16 YCbCr format, used for video. int NV21 YCrCb format used for images, which uses the NV21 encoding format. int RGB_565 RGB format used for pictures encoded as RGB_565. int YUY2 YCbCr format used for images, which uses YUYV (YUY2) encoding format. int YV12 Android YUV format: This format is exposed to software decoder
20 2023-11-18
编程技术问答社区
我如何对DirectShow图形进行逆向工程?
我有一个直接节目图,可以从网络流渲染mpeg2/4电影.当我通过手动连接引脚组装图形时,它不会渲染.但是,当我在GraphBuilder上调用渲染时,它会很好地呈现. 显然,我没有在GraphBuilder执行的图表中没有执行的设置步骤. 有什么办法可以在组装图时查看GraphBuilder的调试输出? 有没有办法倾倒工作图以查看如何将其放在一起? 其他关于揭开直接节目框中的奥秘的想法? 谢谢! -Z 解决方案 您可以观看使用GraphEdit创建的图,该图是DirectShow SDK的工具.在GraphEdit中,选择文件 - >连接到远程图... 要在列表中找到图形,您必须在运行对象表中注册它: void AddToRot( IUnknown *pUnkGraph, DWORD *pdwRegister ) { IMoniker* pMoniker; IRunningObjectTable* pROT; G
26 2023-11-18
编程技术问答社区
验证MPD文件-使用MPEG-DASH
我刚刚开始使用mpeg-dash(来自客户端),遵循C057623_iso_iec_23009-1_2012 Spec. 有人知道我收到的MPD文件是否有公共LIB或开源? 我在处理XML时没有问题. 任何帮助将不胜感激. 解决方案 您可能需要检查此出色的软件资源用于MPEG DASH的所有内容. 其他解决方案 在这里,dashif的另一个MPD验证器: dashif验证器. 关于错误"无法找到元素的声明'mpd'的声明",由上述 mpeg-dash mpd验证器,我观察到即使存在MPD标签,它也可能发生,但它会遇到与预期文本的某些差异,例如: 而不是
146 2023-09-30
编程技术问答社区
通过MP4进行直播
我正在从事在线电视服务.目标之一是在没有任何其他浏览器插件的情况下播放视频(Flash除外). 我决定使用MP4,因为大多数HTML5浏览器和Flash(用于后备)支持它.视频由FFMPEG从服务器上的ASF转码. 但是,我发现MP4不能实时流程,因为它具有必须指定长度的元数据的MOOV原子. FFMPEG无法将MP4直接流到Stdout,因为它将MOOV放在文件的末尾. ( MP4的流在Android中起作用,但在Flash Player中使用NetStream.play.filestructureinvalid错误) 当然,MPEG-TS存在,但是HTML5 不支持. 我想到的是一种实时转码流的方法,并且在每个新的HTTP请求上,首先发送一个MOOV,该MOOV指定视频长度很长的数字,然后开始发送发送.其余的MP4文件. 是否可以使用MP4进行这种方式流? 经过一些研究和AV501的答案,我知道必须知道框架的尺寸,以便它可以正常工作.
26 2023-09-30
编程技术问答社区