2010-08-26 67 views
0

我已经使用FFMPEG将MTS视频编译为MP4格式。该视频是2分钟长。播放MPEG电影,在特定的地方开始和结束?

我希望能够播放视频,但是从0:15秒开始并在0:45秒结束。实际上,我希望播放软件只显示30秒的播放时间。该软件必须是基于Flash的应用程序才能集成到HTML中。

有没有人知道任何软件会这样做?提前致谢。

+1

我知道这并不能回答你的问题,但是将视频裁剪到你需要的部分不是更好吗? – Zugwalt 2010-08-26 18:41:19

+0

你的意思是记录30秒并将其保存为单独的剪辑? – Reado 2010-08-26 18:44:43

+1

叶,使用例如MS Movie Maker来裁剪它。 – Eugene 2010-08-27 14:44:25

回答

0

我发现了一些服务器端软件,会做的伎俩:

http://h264.code-shop.com/

根据您运行的Web服务器的不同而有不同的风格。允许视频流式传输。也可以让你决定从哪里开始和结束。

0
<?xml version="1.0" encoding="utf-8"?> 

<mx:Style> 
    @font-face { 
     src:url("assets/arial.ttf"); 
     font-family: Arial; 
    } 

    .timeStyle { 
     color: #FFFFFF; 
     font-family: Arial; 
     font-size: 12; 
    } 

    .playPauseStyle { 
     /* play button skins */ 
     skin: Embed('assets/control_play.png'); 
     downSkin: Embed('assets/control_play_blue.png'); 

     /* pause button skins */ 
     selectedUpSkin: Embed('assets/control_pause.png'); 
     selectedOverSkin: Embed('assets/control_pause.png'); 
     selectedDownSkin: Embed('assets/control_pause_blue.png'); 
    } 

    .stopStyle { 
     skin: Embed('assets/control_stop.png'); 
     downSkin: Embed('assets/control_stop_blue.png'); 
    } 

    .controllerStyle { 
     bottom: 5; 
     left: 5; 
     right: 5; 
     paddingBottom: 5; 
     paddingLeft: 5; 
     paddingRight: 5; 
     paddingTop: 5; 
     alpha: 0; 
     background-color: #000000; 
     background-alpha: 0.5; 
    } 
</mx:Style> 

<mx:Script> 
    <![CDATA[ 
     import mx.events.VideoEvent; 

     private function showControls():void { 
      fadeIn.play([controls]); 
     } 

     private function hideControls():void { 
      fadeOut.play([controls]); 
     } 

     private function videoDisplay_playheadUpdate(evt:VideoEvent):void { 
      var pTime:Date = new Date(videoDisplay.playheadTime * 1000 || 100); 
      var tTime:Date = new Date(videoDisplay.totalTime * 1000); 
      time.text = dateFormatter.format(pTime) + "/" + dateFormatter.format(tTime); 
     } 

     private function playPauseButton_click(evt:MouseEvent):void { 
      if (videoDisplay.playing) { 
       videoDisplay.pause(); 
      } else { 
       videoDisplay.playheadTime=**YOUR TIME HERE** 
       videoDisplay.play(); 
      } 
     } 

     private function stopButton_click(evt:MouseEvent):void { 
      videoDisplay.stop(); 
     } 
    ]]> 
</mx:Script> 

<mx:Fade id="fadeIn" alphaFrom="0.0" alphaTo="1.0" /> 
<mx:Fade id="fadeOut" alphaFrom="1.0" alphaTo="0.0" /> 

<mx:DateFormatter id="dateFormatter" formatString="NN:SS" /> 

<mx:Label text="Mouse over the VideoDisplay control below to show control buttons." /> 
<mx:Canvas rollOver="showControls()" rollOut="hideControls()"> 
    <mx:VideoDisplay id="videoDisplay" source="http://www.helpexamples.com/flash/video/caption_video.flv" autoPlay="false" playheadUpdate="videoDisplay_playheadUpdate(event)" /> 
    <mx:HBox id="controls" styleName="controllerStyle" alpha="0.0"> 
     <mx:Button id="playPauseButton" styleName="playPauseStyle" toggle="true" selected="{videoDisplay.playing}" click="playPauseButton_click(event)" /> 
     <mx:Button id="stopButton" styleName="stopStyle" click="stopButton_click(event)" /> 
     <mx:Spacer width="100%" /> 
     <mx:Label id="time" styleName="timeStyle" /> 
    </mx:HBox> 
</mx:Canvas> 

或看到更多的在这里 http://blog.flexexamples.com/2007/08/05/building-a-basic-controller-for-the-videodisplay-control/comment-page-1/#comment-329

+0

谢谢,只是想,如果你想要做的只是查看30秒,你将如何阻止播放器下载和缓冲整个视频? YouTube似乎这样做 - 如果您通过视频中途切换到另一个SD/HD模式,则它会继续中途而不是回到起点。或者是因为他们使用视频流媒体服务器? – Reado 2010-08-27 20:23:27

+0

哦,它是因为它们是通过RTMP协议从服务器流式传输到FMS或Red5,并且您可以控制** live **视频通道的缓冲。 – Eugene 2010-08-28 03:05:01