• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revision8427166828c049f06b9684562271d49444f00b7d (tree)
Zeit2014-04-06 21:14:13
Autorjakago <jakago777@gmai...>
Commiterjakago

Log Message

2014年度版対応完了?

Ändern Zusammenfassung

Diff

--- a/CaptureStream.rb
+++ b/CaptureStream.rb
@@ -213,24 +213,26 @@ $skip_existing = true
213213 # 3g2, 3gp, aac, avi, m4a, mka, mkv, mov, mp3, ts
214214 #--------------------------------------------------------------------------------
215215
216-$audio_extension = 'aac'
216+$audio_extension = 'mp3'
217217
218218 #--------------------------------------------------------------------------------
219219 # 音声ファイルの拡張子に対応したffmpegの実行コマンド
220220 # 3g2, 3gp, aac, avi, m4a, mka, mkv, mov, mp3, ts
221221 #--------------------------------------------------------------------------------
222+#$malformed = %w!3g2 3gp m4a mov!
223+$has3args = %w!3g2 3gp aac ts!
222224 $akamai = 'https://nhk-vh.akamaihd.net/i/gogaku-stream/mp4/'
223-$ffmpegHash = {
224- :'3g2' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\" -bsf aac_adtstoasc",
225- :'3gp' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\" -bsf aac_adtstoasc",
226- aac: "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\"",
227- avi: "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\" -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\"",
228- m4a: "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\" -bsf aac_adtstoasc -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\"",
229- mka: "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\" -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\"",
230- mkv: "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\" -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\"",
231- mov: "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\" -bsf aac_adtstoasc -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\"",
232- mp3: "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec libmp3lame \"%s\" -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\"",
233- ts: "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\""
225+$ffmpeg_hash = {
226+ '3g2' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -bsf aac_adtstoasc -acodec copy \"%s\"",
227+ '3gp' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -bsf aac_adtstoasc -acodec copy \"%s\"",
228+ 'aac' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\"",
229+ 'avi' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\" -vn -acodec copy \"%s\"",
230+ 'm4a' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\" -vn -bsf aac_adtstoasc -acodec copy \"%s\"",
231+ 'mka' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\" -vn -acodec copy \"%s\"",
232+ 'mkv' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\" -vn -acodec copy \"%s\"",
233+ 'mov' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\" -vn -bsf aac_adtstoasc -acodec copy \"%s\"",
234+ 'mp3' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -id3v2_version 3 -metadata title=\"%s\" -metadata artist=\"NHK\" -metadata album=\"%s\" -metadata date=\"%s\" -metadata genre=\"Speech\" -vn -acodec libmp3lame \"%s\"",
235+ 'ts' => "\"%s\" -y -i #{$akamai}%s/master.m3u8 -vn -acodec copy \"%s\""
234236 }
235237
236238 #--------------------------------------------------------------------------------
@@ -537,9 +539,9 @@ end
537539 # flvのダウンロードとmp3への変換
538540 #--------------------------------------------------------------------------------
539541
540-def capture_stream( target, kouza, hdate, file, retry_count )
542+def capture_stream( target, kouza, hdate, file )
541543 out_folder = format_name( $out_folder_hash[target], target, kouza, hdate, file ) # 出力フォルダ
542- out_file = format_name( $out_file_hash[target], target, kouza, hdate, file ) # 音声ファイル(拡張子なし)
544+ out_file = format_name( $out_file_hash[target] + '.' + $audio_extension, target, kouza, hdate, file ) # 音声ファイル(拡張子なし)
543545 id3_album = format_name( $id3_album[target], target, kouza, hdate, file )
544546 id3_title = format_name( $id3_title[target], target, kouza, hdate, file )
545547
@@ -549,15 +551,9 @@ def capture_stream( target, kouza, hdate, file, retry_count )
549551
550552 exit unless check_output_dir( out_folder )
551553 out_folder += File::Separator
552- p out_file;exit
553554
554555 out_folder = to_native( out_folder )
555556 out_file = to_native( out_file )
556- # 2012年度まではflvに含まれていた音声がmp3だったので、単純に抽出して拡張子をmp3としていたが、
557- # 2013年度からはaacに変更されたたため、抽出した音声用のコンテナを指定できるようにした。
558- # $audio_extensionにmp3を指定した場合は再エンコードされる。
559- out_file = File.basename( out_file, File.extname( out_file ) ) + '.' + $audio_extension
560- flv_file = File.basename( out_file, File.extname( out_file ) ) + '.flv'
561557
562558 if $skip_existing && File.exists?( "#{out_folder}#{out_file}" )
563559 print( '-' )
@@ -565,42 +561,25 @@ def capture_stream( target, kouza, hdate, file, retry_count )
565561 end
566562
567563 result = false
568- if file =~ /(.*)\.flv$/ || file =~ /(.*)\.mp4$/
569- command1935 = "#{$flvstreamer} -r \"rtmp://#{$flv_host}/#{$flv_app}#{$flv_service_prefix}#$1\" -o \"#{out_folder}#{flv_file}\" > #{$null} 2>&1"
570- command80 = "#{$flvstreamer} -r \"rtmpt://#{$flv_host}:80/#{$flv_app}#{$flv_service_prefix}#$1\" -o \"#{out_folder}#{flv_file}\" > #{$null} 2>&1"
571- system( command1935 )
564+ if file =~ /(.*)\.mp4$/ || file =~ /(.*)\.flv$/
565+ command = $ffmpeg_hash[$audio_extension]
566+ if $has3args.include?( $audio_extension )
567+ command = command % [$ffmpeg, file, out_folder + out_file]
568+ else
569+ command = command % [$ffmpeg, file, id3_title, id3_album, '20' + file[0..1], out_folder + out_file]
570+ end
571+ system( command + " > #{$null} 2>&1" )
572572 if $?.to_i == 0x7f00
573- jputs( "\nflvstreamerが実行できません。パスの通った実行可能な場所にflvstreamerを置いてください。" )
573+ jputs( "\nffmpegが実行できません。パスの通った実行可能な場所にffmpegを置いてください。" )
574574 exit
575575 end
576- while $? != 0 && retry_count > 0
577- system( "#{command80} --resume" )
578- retry_count -= 1
579- end
580576
581577 if $? == 0
582- if out_file != flv_file
583- if $audio_extension == 'mp3'
584- system( "#{$ffmpeg} -i \"#{out_folder}#{flv_file}\" -vn -acodec libmp3lame -ar 22050 -ac 1 -ab 48k -y \"#{out_folder}#{out_file}\" > #{$null} 2>&1" )
585- else
586- system( "#{$ffmpeg} -i \"#{out_folder}#{flv_file}\" -vn -acodec copy -y \"#{out_folder}#{out_file}\" > #{$null} 2>&1" )
587- end
588- if $?.to_i == 0x7f00
589- jputs( "\nffmpegが実行できません。パスの通った実行可能な場所にflvstreamerを置いてください。" )
590- exit
591- end
592- if $? == 0
593- if $audio_extension == 'mp3'
594- id3tag( out_folder + out_file, id3_album, id3_title, '20' + file[0..1] )
595- end
596- end
597- File.unlink( out_folder + flv_file )
598- end
599578 result = true
600579 print( 'O' )
601580 else
602581 print( 'X' )
603- File.unlink( out_folder + flv_file )
582+ File.unlink( out_folder + out_file )
604583 end
605584 end
606585
@@ -645,7 +624,7 @@ targets.each { |target|
645624 kouza = element.attributes['kouza']
646625 hdate = element.attributes['hdate']
647626 file = element.attributes['file']
648- capture_stream( target, kouza, hdate, file, 5 )
627+ capture_stream( target, kouza, hdate, file )
649628 }
650629 }
651630 puts()