2011-10-09
2011-09-04
CentOSのApache2モジュールでH264をストリーミング配信する
Apache |
CentOSにはデフォルトじゃapxsがインストールされてないからインストールする。
yum install httpd-devel
次にH264をストリーミングするためにh264_streaming_moduleをインストール
# wget http://h264.code-shop.com/download/apache_mod_h264_streaming-2.2.7.tar.gz # tar xvfz apache_mod_h264_streaming-2.2.7.tar.gz # cd mod_h264_streaming-2.2.7 ; pwd # ./configure --with-apxs=/usr/sbin/apxs && make && make install
LoadModule h264_streaming_module /usr/lib64/httpd/modules/mod_h264_streaming.so AddHandler h264-streaming.extensions .mp4
と入力すればH264でストリーミング配信ができます。
2011-08-29
Perlとffmpegを使ったYouTubeの動画をmp3に変換
Perlとffmpegを使ってYouTubeの動画をダウンロードした後mp3に変換するソースコード
use strict; use warnings; use URI::Escape; use LWP::UserAgent; use HTTP::Request; use IO::File; use URI; use Getopt::Long; print "http://www.youtube.com/watch?v=動画ID\n"; print "YouTubeの動画ID:"; my $id = <STDIN>; chomp $id; print "タイトル(スペースは入れないでください):"; my $title = <STDIN>; chomp $title; my $ua = LWP::UserAgent->new(); my $req = HTTP::Request->new("GET", "http://www.youtube.com/watch?v=$id"); my $res = $ua->request($req); my $code = $res->content(); $code =~ /stream_map=url%3D(.+?)%3D/; my $unescaped = uri_unescape( $1 ); $unescaped =~ s/%([0-9a-fA-F][0-9a-fA-F])/chr(hex($1))/ego; $ua->request( HTTP::Request->new( GET => $unescaped ), "$title.webm" ); # 起動オプション my $inDir = "./"; my $outDir = "./"; my $fname = "$title.webm"; #ファイル名取得 my $name = "$title"; my $video_option = ""; my $audio_option = ""; if($fname=~/.mp4/i){ $audio_option .= " -acodec libmp3lame" # 音声コーデック ." -ac 2" # 音声チャネル数 ." -ar 44100" # 音声サンプリングレート ." -ab 160k"; # 音声ビットレート }elsif($fname =~ ".WebM" or $fname =~ ".webm") { $audio_option .= " -acodec libmp3lame" # 音声コーデック ." -ac 2" # 音声チャネル数 ." -ar 44100" # 音声サンプリングレート ." -ab 160k"; # 音声ビットレート }else{ $audio_option .= " -acodec copy"; # 元音声をコピー } my $command = "ffmpeg -y -i $inDir$fname" ." -copyts" # ソースのタイムスタンプ維持 .$audio_option ." -f mp3 $outDir$name.mp3"; # print "$command\n"; #=pod `$command`; #=cut unlink("$title.webm"); print "完了"; exit;
リンクしてもいーい??