Articles of mp4

如何使用MediaPlayer在列表视图中播放多个video?

我试图实现与video列表视图,因为它的元素。 我正在使用此项目在纹理视图上显示video。 它在下面使用MediaPlayer。 当在同一时间加载两个video时,它(大部分时间)失败。 我得到的错误是: TextureVideoView error. File or network related operation errors. MediaPlayer: error (1, -2147479551) 这也是从磁盘加载文件时发生的 在error handling部分,我尝试重置URL。 然后,我大部分得到 E/BufferQueueProducer: [unnamed-30578-12] disconnect(P): connected to another API (cur=0 req=3) 错误。 我不清楚的是,从networking设置一些任意video将工作,但重试相同的URL将失败。 所以在OnErrorListener中: textureView.setVideo(item.getUriMp4(),MediaFensterPlayerController.DEFAULT_VIDEO_START); 将失败,但是: textureView.setVideo("http://different.video" … ) 将工作得很好。 这对于特定文件也不是问题,因为滚动不同的video文件将失败。 有时那些失败的人下次还会工作 我也试过MediaCodec和MediaExtractor组合,而不是MediaPlayer方法,但我碰到,看起来像什么, 设备特定的平台错误 任何提示? 有什么build议么? 谢谢 W上。

WhatsAppvideo作为GIF在编程上共享

我怎样才能将MP4video文件转换为WhatsApp的GIF文件(它简单地显示为应用程序用户界面内的GIF,但内部是一个特定的MP4格式)在Android共享意图,通过WhatsApp聊天应用程序被认可为这种types的媒体? ?? 我search了很多,但是我找不到任何来自WhatsApp文档的信息(他们没有这种types的文档)或者任何与我有同样问题的开发者。 我拥有的: 我发现,如果你在hex编辑器上阅读它们,在whatsapp“gif”mp4文件的开始处显示一个循环值,所有文件都有这个。 删除这个值使得whatsapp作为普通video接收(不共享为gif)。 我怎样才能使用ffmpeg编码添加此值? (用这个值手动编辑我的mp4文件损坏的文件,也许我必须修复一些我还不知道的mp4头索引…) 以hex表示的第一个80字节(从mp4结构开始到“moov”primefaces开始): 00 00 00 1C 66 74 79 70 6D 70 34 32 00 00 00 01 6D 70 34 31 6D 70 34 32 69 73 6F 6D 00 00 00 18 62 65 61 6D 01 00 00 00 01 00 00 00 00 00 […]

MediaMuxer错误“无法停止混合器”

我使用带mimetypes“video / avc”的MediaCodec编码Camera预览数据,并将编码数据(仅video,无audio)传递给MediaMuxer 。 该复用器似乎运行良好,并创build一个合理大小的输出文件(即,越长我logging越大)。 但是,当我尝试停止复用器时,出现“无法停止复用器”错误: 10-21 10:39:40.755: E/AndroidRuntime(2166): Caused by: java.lang.IllegalStateException: Failed to stop the muxer 在发生故障的站点之前有一些可疑的MPEG4Writer日志消息: 10-21 10:39:40.740: D/MPEG4Writer(2166): Stopping Video track 10-21 10:39:40.740: E/MPEG4Writer(2166): Missing codec specific data 10-21 10:39:40.740: W/MPEG4Writer(2166): 0-duration samples found: 122 10-21 10:39:40.740: I/MPEG4Writer(2166): Received total/0-length (123/1) buffers and encoded 123 frames. – video 10-21 10:39:40.740: D/MPEG4Writer(2166): Stopping […]

Android – 保存rtsp(h264)stream到mp4文件

我正在做一个需要的项目 从一个IPCamera读取input的H.264编码stream – 我可以通过一个rtspurlrtsp://192.168.1.83:8001 / 显示IPCamerastream – 这是我能够使用的 final VideoView vv = (VideoView) findViewById(R.id.video_view_h264); MediaController mc = new MediaController(getApplicationContext()); vv.setVideoURI(video); vv.setMediaController(mc); vv.requestFocus(); vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { public void onPrepared(MediaPlayer mp) { vv.start(); } }); 现在我想logging这个stream到一个MP4文件。 这是我卡住的地方,我正在考虑以下选项 a)MediaRecorder – 基于我的谷歌search,我相信这个类只能从设备相机input。 有没有一种方法来调整,我可以提供来自rtspstream的input? b)MediaCodec API – 从4.1开始,Android和MediaExtractor和MediaCodec一起发布了这个低级API。 对于这个选项,我认为rtspstream不能用在下面的代码片段中 final String STREAM_URL = "rtsp://192.168.1.83:8001/"; MediaExtractor mediaExtractor = new MediaExtractor(); mediaExtractor.setDataSource(STREAM_URL); […]

Android VideoView无法播放videoMP4

我使用Android VideoView通过HTTP播放video文件。 我的问题是我的手机提示“无法播放video对不起,这个video无法播放。” 当从HTTP播放mp4文件时。 但播放另一个mp4video文件时可以。 当用于较新的手机,如三星Galaxy S,我的程序可以同时播放来自HTTP的MP4video文件。 我的手机: Samsung GT-S5830 Android version: 2.3.4 Display: 320×480. Video file 1 (OK): Video Codec: H.264 Resolution: 640×360 Others: 16:9, 340kbps, 29.92fps Audio Codec: AAC, 44kHz 96kbps Stereo. Video file 2 (Fail): Video Codec: H.264 Resolution: 640×360 Others: 16:9, 993kbps, 25fps Audio Codec: AAC 44kHz 125kbps Stereo. 下面是我的代码,硬编码成功播放video文件1。 public […]

在HTML5video标签Mp4video不玩移动铬和移动Safari浏览器

我有这个代码在html5页面中播放video: <video autoplay loop id="bgvid"> <source src="video-background.mp4" poster="/poster.png" type="video/mp4"> </video> 问题是,它不适用于移动铬(Android手机)和移动Safari(iPhone)。 但它在桌面和移动Firefox(Android手机)中的“每一个”浏览器(经过Safari,Chrome,Firefoxtesting)都能正常工作。 我怎样才能克服这个问题? 编辑:添加了这个代码: var myVideo = document.getElementById("bgvid"); function playVid() { myVideo.play(); } function pauseVid() { myVideo.pause(); } 如果我添加一个触发函数playVid()的button,它会起作用。 所以我认为问题在于自动播放。 我试图用load事件触发该函数,但它不起作用。

如何从资产文件夹加载video? (使用VideoView播放它们)

我需要从assets文件夹中打开一个mp4video,然后用VideoView播放它。 我尝试了这两个选项,但没有一个可行。 mVideoView.setVideoPath("file:///android_asset/videos.mp4"); mVideoView.requestFocus(); mVideoView.start(); 和… String uriPath = "file:///android_asset/videos.mp4"; Uri uri = Uri.parse(uriPath); mVideoView.setVideoURI(uri); mVideoView.requestFocus(); mVideoView.start(); 这些选项不起作用,但如果我试图从SDCARD打开video,它完美的作品,那么,问题是当我试图从资产文件夹中加载video。 我做错了什么? 谢谢

在Android应用程序开发中预加载或预缓冲.mp4video

我正在构build一个应用程序,成功地显示一个MP4video文件onButtonClick。 我想预缓冲或预加载video的URI(远程URL),以便它不会延迟点击button后播放video。 我希望它能够马上点击并播放,因此,在应用程序启动启动屏幕上进行预加载或缓冲似乎是一个合适的解决scheme。 唯一的是我不知道如何。 我有大量的Android图书,但几乎没有任何缓冲,或者只覆盖audio。 任何人都可以让我知道如何缓冲以前的活动video? 谢谢。

如何在android中的videoview中播放.mp4video?

我正在处理video播放器应用程序,我想在本地video播放中播放.mp4video。 我无法使用url 播放 video 。 我得到错误对不起,这个video不能播放 ,我也无法 播放本机的videovideo下载的video 。 我在videoview中播放video的代码: String mUrl = "http://www.servername.com/projects/projectname/videos/1361439400.mp4"; VideoView mVideoView = (VideoView)findViewById(R.id.videoview) videoMediaController = new MediaController(this); mVideoView.setVideoPath(mUrl); videoMediaController.setMediaPlayer(mVideoView); mVideoView.setMediaController(videoMediaController); mVideoView.requestFocus(); mVideoView.start(); 请分享你的想法相同。 谢谢。

在android:4.3的MediaMuxer或ffmpeg中通过video添加水印位图

这是我的情况: 从网上下载一个AVI电影 打开一个位图资源 在背景中的所有帧上将该位图覆盖在电影的底部 将video保存在extarnal存储中 video长度通常是15秒 这可能实现使用MediaMuxer? 任何关于此事的信息都很乐意收到 我一直在寻找http://bigflake.com/mediacodec/#DecodeEditEncodeTest (谢谢@fadden),它说: “解码框架并将其复制到带有glReadPixels()的ByteBuffer glReadPixels()需要约8ms的Nexus 5,速度足够快,足以跟上30fps的input速度,但将其作为PNG保存到磁盘所需的额外步骤是昂贵的一秒)” 所以几乎1秒/帧是不可接受的。 从我想的一种方法是将每个帧保存为PNG,打开它,添加位图覆盖,然后保存。 然而,这将需要很长时间才能完成。 我想知道是否有办法做这样的事情: 从外部存储打开video文件 开始解码它 每个解码后的帧都将随着内存中的位图覆盖而改变 该帧被发送到编码器。 在iOS上,我看到有一种方法可以将原始audio+原始video+图像添加到容器中,然后对整个video进行编码。 我应该切换到ffmpeg吗? ffmpeg的稳定性和兼容性如何? 我冒着与Android 4.0 +设备的兼容性问题? 有没有办法使用ffmpeg来实现这个? 我是这个领域的新手,仍在研究。 多年后编辑: 自从这个问题已经过去了几年,ffmpeg在许可证方面不太容易添加到商业软件中。 这是怎么演变的? Android的更新版本更多的能力与默认的SDK?