お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2013-12-05 16:55:33

kkuma_esd
メンバ
登録日: 2013-11-20

動画再生終了時にプロセスも終わって欲しい

Ubuntu13.10で動画再生についての質問です。

タイトルの通りなのですが、totemで動画ファイルを再生させると最期まで動画を再生した後は"Pause"状態になりますが、これをプログラムが終了するようにはできないでしょうか。

一通りオプションを眺めてみたのですが、見つかりませんでした。

gnome-mplayerの"--quit_on_complete"オプションと同等の機能です。

そちらを使ってもいいのですが、そちらはそちらで、画面の左右が見切れる(ファイル側のアスペクト情報が間違っているのかも?)問題や"--ss"オプションで開始時刻を指定しても必ずResumeするかどうか聞かれる等の問題があるのです。

そんなに難しい事をやりたいわけではなくて、
・指定した動画を1回だけ再生する
・動画終了時はプロセスも終了する
・アスペクトは必要なら強制的に指定してもよい
・フルスクリーン
・コントロールボタン等は非表示
・最前面表示
・再生開始は必ずファイルの初めから
・シェルスクリプトから開始
だけなのですが、mplayer、gnome-mplayer、totemのどれも全てを同時に満たせないのです。


vlc等ならできるのでしょうか…

オフライン

 

#2 2013-12-06 01:01:18

hellfire
メンバ
From: 日本/神奈川県
登録日: 2006-11-21

Re: 動画再生終了時にプロセスも終わって欲しい

kkuma_esd 様へ。

もとより、シェルスクリプトでやるという条件ならば、どうにでもなると思いますが…。
例えば、動画の長さを取得して、totem 再生と同時に kill を sleep で待機させるとか…。

試しに組んでみると

コード:

#!/bin/bash

video_length=`mediainfo ${1} | grep Duration | head -n 1 | cut -d ':' -f 2 | sed -e 's/mn/m/'`

totem ${1} &
sleep ${video_length}; kill `pgrep totem`

上記のスクリプトの引数に動画パスを入れるだけで実行できます。

mediainfo というプログラムが動画情報を取得しますので、
出力された文字列を弄って、sleep に渡しているだけです。
ただし、totem の起動にかかる時間は考慮されていないので、
このままだと、動画終了ちょっと手前で totem が終了します。
勿論、sleep 時間 + α で解決です。

オフライン

 

#3 2013-12-06 10:28:51

popopopoon
メンバ
登録日: 2013-10-21

Re: 動画再生終了時にプロセスも終わって欲しい

今調べて見ましたが、vlcならできるそうです。

コード:

$ vlc hoge vlc://quit --fullscreen

これでどうでしょうか?

コード:

$ vlc -H

で網羅的にオプションを見ることができますよ。

オフライン

 

#4 2013-12-09 10:59:58

kkuma_esd
メンバ
登録日: 2013-11-20

Re: 動画再生終了時にプロセスも終わって欲しい

hellfire様

  動画の情報を取得するコマンドがあるのに気が付きませんでした。ありがとうございます。

popopopoon様

  有益な情報ありがとうございます。

  いずれの方法でも実現は可能そうです。試してみて、また結果を報告したいと思います。ありがとうございました。

オフライン

 

#5 2013-12-20 21:05:46

kkuma_esd
メンバ
登録日: 2013-11-20

Re: 動画再生終了時にプロセスも終わって欲しい

結局、popopopoon様が教えて下さった、vlcを使う方法でうまくいきました。

hellfire様のmediainfoを使った方法も面白かったのですが、再生を途中で止められた場合等考慮する点があったため、より単純な方法の方を採用する事にしました。

ありがとうございます。

オフライン

 

Board footer

Powered by FluxBB