Воспроизводит ли flash .avi или .mpg4? Если да, то как?

#flash #actionscript-3 #video #avi #mpeg

#flash #actionscript-3 #Видео #avi #mpeg

Вопрос:

Как загрузить и воспроизвести файл .avi или .mpg4 во Flash? Возможно ли это?

-> Этот класс может воспроизводить .flv, а также .mp4 .. но для .avi он показывает ошибку «Ошибка # 2044: необработанное событие NetStatusEvent:. уровень = ошибка, код =NetStream.Play.StreamNotFound»

 package src {     
    import flash.display.Sprite;     
    import flash.media.Video;     
    import flash.net.NetConnection;     
    import flash.net.NetStream;      
    import flash.events.Event;
    import flash.events.MouseEvent;

        public class vplayer extends Sprite{                 
            public var vid:Video = new Video(1920,1080);
            private var nc:NetConnection = new NetConnection();
            public var ns:NetStream;
            public var listener:Object = new Object();
            private var _duration:Number = 0; 

            public function vplayer():void{             
                addChild(vid);
                nc.connect(null);
                ns = new NetStream(nc);
                vid.attachNetStream(ns);
                listener.onMetaData = metaDataHandler;
                ns.client = listener;           
                //customClient.onCuePoint = cuePointHandler;
            }
            public function playVideo00(vv:String):void{

                ns.play(vv);
            }
            public function stopVideo00():void{
                ns.close();
            }
            /*public function cuePointHandler(infoObject:Object):void {
                trace("cuePoint");
            }*/
            public function metaDataHandler(infoObject:Object):void {
                _duration = infoObject["duration"];
                trace (" Time:  "   infoObject["duration"]);
            }
            public function get duration00():Number {     
                return _duration; 
            }
        } 
}
  

.. есть помощь?

Ответ №1:

Если файл находится в формате MP4 на сервере потоковой передачи, вам просто нужно добавить к имени вашего видеофайла префикс «mp4:» при выполнении RTMP-вызова. Вы должны быть уверены, что добавляете его только к фактическому видеофайлу, а не к полному URL.

Пример:

Если ваше полное видео находится на уровне rtmp://domain.com/dir/myVideo.mp4 , то при вызове myVideo.mp4 функции вы должны использовать префикс play() .

ns.play("mp4:myVideo");

В зависимости от настроек вашего потокового сервера вам может понадобиться расширение файла, а может и не понадобиться.

Ответ №2:

этот пример может воспроизводить .mp4 файлы

Ответ №3:

Расширение файла на самом деле не так уж много значит. AVI, QuickTime и т.д. Являются контейнерными форматами, и форматы аудио- и видеопотока (т. Е. кодеки) внутри них могут различаться. У некоторых формат контейнера тоже может отличаться.

В статье о Flash Video в Википедии довольно хорошо обобщены сведения о том, что воспроизводится в какой версии Flash Player.

Что касается воспроизведения видео, вы можете либо создать свой собственный проигрыватель, используя FLVPlayback, либо использовать обычный проигрыватель, такой как FlowPlayer.

Комментарии:

1. Этот класс может воспроизводить .flv, а также .mp4 .. но для .avi он показывает ошибку «Ошибка # 2044: необработанное событие NetStatusEvent:. уровень = ошибка, код =NetStream.Play. StreamNotFound»

2. Вы читали статьи, о которых я упоминал? Я сильно сомневаюсь, что ваш AVI на самом деле содержит аудио / видео, которые может декодировать Flash Player. Другими словами, это не функция класса AS3, которую вы используете. Все видеопроигрыватели, по сути, вызывают одни и те же функции. Проблема в том, какие аудио / видеоформаты может декодировать сам Flash Player.

3. Размер этого s true, and also, playing an AVI file from a web page is not good thing to do, AVI файла в основном большой. Так что, возможно, Adobe предпочитает поддерживать flv и mp4, а не avi. @ MPD