デフォルトでは、mplayerはビデオ内の現在の場所を秒単位で表示しますが、これは役に立たないことではありません。例:
A:4086.2 V:4086.2 A-V: 0.000 ct: 0.039 0/ 0 17% 2% 2.1% 3 0
^--------^----- This is the current location in seconds.
さて、それで何? Mplayerにはひどいデフォルトがあります。ほかに何かあたらしいことは?しかし、mplayerは細部まで高度に構成可能であるため、その行を変更して、必要な情報をそこに配置する方法が必要です。しかし、マンページを精査しましたが、それを行うオプションが見つかりません。理想的な動作:
A:1:08:06.2 V:1:08:06.2 A-V: 0.000 ct: 0.039 0/ 0 17% 2% 2.1% 3 0
^-----------^----- This is the current location in hours:minutes:seconds.
誰かがこれを行う方法を考え出しましたか?
Mplayerのソースコードを見てみましょうmplayer.c:
_...
// Audio time
if (mpctx->sh_audio) {
saddf(line, &pos, width, "A:%6.1f ", a_pos);
if (!sh_video) {
float len = demuxer_get_time_length(mpctx->demuxer);
saddf(line, &pos, width, "(");
sadd_hhmmssf(line, &pos, width, a_pos);
saddf(line, &pos, width, ") of %.1f (", len);
sadd_hhmmssf(line, &pos, width, len);
saddf(line, &pos, width, ") ");
}
}
// Video time
if (sh_video)
saddf(line, &pos, width, "V:%6.1f ", sh_video->pts);
// A-V sync
if (mpctx->sh_audio && sh_video)
saddf(line, &pos, width, "A-V:%7.3f ct:%7.3f ", a_v, corr);
...
_
ご覧のとおり、if (mpctx->sh_audio) AND if (!sh_video)
のみですが、audio-onlyはsadd_hhmmssf()
を呼び出し、hh:mm:ss形式をstdoutに出力します。しかし、_mpctx->sh_audio && sh_video
_であるのに対し、オーディオ+ビデオはそうではありません。
したがって、_-novideo
_オプションを指定してmplayer
コマンドを呼び出すと、hh:mm:ss形式が含まれます。
_[xiaobai@xiaobai example]$ mplayer -novideo example.mkv
MPlayer SVN-r37391-5.1.1 (C) 2000-2015 MPlayer Team
...
Video: no video
Position: 58 %
A: 90.5 (01:30.4) of 145.4 (02:25.4) 0.0%
_
[MPlayer-dev-eng] [PATCH]オーディオのみのファイルの合計時間 オーディオのみの起源について説明しました:
添付のパッチにより、MPlayerはオーディオのみのファイルのステータス行に合計時間を表示します。これはオーディオのみに役立つと思います
1)ステータスラインはまだかなり小さい
2)OSDをアクティブにして合計時間を見つけることはできません
この説明から、同じ目標を達成するためにOSDをアクティブ化できることがわかります。だから今は_man mplayer
_を読んでOSDキーワードを検索してください:
_ ...
o
Toggle OSD states: none / seek / seek + timer / seek + timer + total time.
...
P
Show progression bar, elapsed time and total duration on the OSD.
...
-osdlevel <0-3> (MPlayer only)
Specifies which mode the OSD should start in.
0 subtitles only
1 volume + seek (default)
2 volume + seek + timer + percentage
3 volume + seek + timer + percentage + total time
...
_
これは、[〜#〜] p [〜#〜]を押すと、現在の時間/合計時間がオンザフライで切り替わるか、_mplayer -osdlevel 3 file
_現在の時間/合計時間を一貫して表示するには:
[更新]
oを押し続けると、4つの状態があることに注意してください。
-osdlevel 3
_のように機能します)理由は不明ですが、_-novideo
_は引き続きoキーを受け入れ、2つの状態、つまり有効なOSDと無効なOSDのみを導入します。 oを押してOSDを有効にしてから、[〜#〜] p [〜#〜]を押すとバグが発生しますそしてそれは00:00:00 /合計時間を表示します。
私自身の解決策は、mpvと呼ばれるmplayerフォークへの切り替えでした。これは、デフォルトでリアルタイムのターミナル時間表示をはるかに賢明に処理します。深刻なmplayerの開発は完全に停滞しているようです。したがって、mpvは考えられるあらゆる点で優れています。それは私の主要なメディアプレーヤーになりました。