×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
video test
gst-launch-1.0 videotestsrc ! xvimagesink
audio test
Ctrl+C で強制終了gst-launch-1.0 audiotestsrc ! pulsesink
動画を普通に再生する
queue はなくてもいいけどあると multi thread 化するらしい
gst-launch-1.0 filesrc location="test.mp4" ! decodebin name=decode \ decode. ! queue ! xvimagesink \ decode. ! queue ! pulsesink
黒枠を作って字幕を表示する
gst-launch-1.0 videomixer name=mix sink_1::ypos=540 ! xvimagesink \ videotestsrc pattern=white ! video/x-raw,width=960,height=540 ! mix.sink_0 \ videotestsrc pattern=black ! video/x-raw,width=960,height=100 \ ! subtitleoverlay name=overlay font-desc="selif" ! mix.sink_1 \ filesrc location="test.srt" ! subparse subtitle-encoding=UTF-8 ! overlay.
黒枠に字幕を表示しながら動画を再生する
gst-launch-1.0 videomixer name=mix sink_1::ypos=540 ! xvimagesink \ filesrc location="test.mp4" ! decodebin name=decode \ decode. ! queue ! videoscale ! video/x-raw,width=960,height=540 ! mix.sink_0 \ decode. ! queue ! pulsesink \ videotestsrc pattern=black ! video/x-raw,width=960,height=100 \ ! subtitleoverlay name=overlay font-desc="selif" ! mix.sink_1 \ filesrc location="test.srt" ! queue \ ! subparse subtitle-encoding=UTF-8 ! overlay.
gst-subtitle.sh
一時停止とか音量調節とかできないけど
#!/bin/sh WIDTH=960 VIDEO_HEIGHT=540 SUBTITLE_HEIGHT=100 FONT_NAME="selif" VIDEO_PATH="$1" SRT_PATH="${1%.*}.srt" gst-launch-1.0 videomixer name=mix sink_1::ypos=${VIDEO_HEIGHT} ! xvimagesink \ filesrc location="${VIDEO_PATH}" ! decodebin name=decode \ decode. ! queue ! videoscale ! video/x-raw,width=${WIDTH},height=${VIDEO_HEIGHT} ! mix.sink_0 \ decode. ! queue ! pulsesink \ videotestsrc pattern=black ! video/x-raw,width=${WIDTH},height=${SUBTITLE_HEIGHT} \ ! subtitleoverlay name=overlay font-desc="${FONT_NAME}" ! mix.sink_1 \ filesrc location="${SRT_PATH}" ! queue \ ! subparse subtitle-encoding=UTF-8 ! overlay.
実行可能にして $ chmod u+x gst-subtitle.sh PATHにある場所に移動 $ mv gst-subtitle.sh ~/bin/ $ gst-subtitle.sh test.mp4
字幕をstdoutに表示する
gst-launch-1.0 --quiet filesrc location="test.srt" \ ! subparse subtitle-encoding=UTF-8 ! fdsink sync=true
英語字幕をfestivalで読み上げ
gstreamer の link ではなく bash の pipe で festival につなげる。ただ上手く読み上げてくれないときがある
gst-launch-1.0 --quiet filesrc location="test.srt" \ ! subparse subtitle-encoding=UTF-8 ! fdsink sync=true | festival --tts
本当は open_jtalk で日本語字幕を読んで欲しいけど難しそう
情報の表示の仕方
gst-inspect-1.0 | grep sink gst-inspect-1.0 appsink
PR
コメント