問題タブ [pts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - ssh セッション内から疑似端末マスター ファイル記述子を取得する方法は?
Cまたはbashで、
可能であれば、sshセッション内から、そのセッションのスレーブ(pts)への入力を担当する疑似端末マスターへのファイル記述子をどのように取得するのか疑問に思っていました。
sftp - sshpassがエラーをスローします'疑似端末の取得に失敗しました:成功'
sshpassツールを実行してsftpアクションを自動化しようとしています。
別のサーバーでは、コマンドは機能しますが、このサーバーでは、1行のエラーメッセージを返すだけです。
これが私が使用しているコマンドです:
そして、私はエラーを受け取ります:
私は多くの異なるホストでrootユーザーとしてそれを試しましたが、問題なくsftpで接続できるので、sshpassまたは疑似端末の問題であると確信しています。
疑似端末についてはよくわからないので、エラーについて何も見つからないようです。/ dev / ptsフォルダーは空で、cat / proc / sys / kernel / pty / nrは0です。これは、実行中のフォルダーがないことを意味すると思います。ptya0からptyzfまでの256個のpty**アイテムがあり、疑似端末の数の制限に達した可能性があると私は信じています。私の最大端末(cat / proc / sys / kernel / pty / maxを見ると)は4096だと思います。
他の誰かがこのエラーを経験したか、何が間違っているのか知っていますか?これは実稼働サーバーであるため、ダウンする余裕はありません。これに関する助けをいただければ幸いです。
linux - /dev/pts に 23 個のファイルがあるのに、who コマンドを使用すると 8 個のファイルしか表示されないのはなぜですか?
8 pts ファイルのみが使用されます
しかし、ディレクトリ /dev/pts/ には 23 個のファイルがあります。何が問題なのですか? 他の 15 個のファイルを使用したのは誰ですか?
ところで、私は screen と tmux の両方を使用して、ssh クライアント経由でリモート サーバーに接続しています :)
ffmpeg - VLC: 「avcodec エラー: ビデオが 5 秒以上遅れています」
mpeg4 ビデオを avi コンテナーに多重化しています。ビデオ ストリームは ~4fps なので、AVCodecContext
time_base
1/4 ( formatContext->streams[0]->codec->time_base
...) に設定し、各フレームのタイムスタンプを再スケーリングします。これは、元のタイムスタンプがミリ秒単位であるためです。パケットに割り当てた結果の値pts
とdts
.
この avi を VLC で再生すると、ビデオが滑らかではなく、次のメッセージが繰り返し表示されます。
avcodec エラー: ビデオが 5 秒以上遅れている -> フレームがドロップしている (コンピュータが遅すぎる?)
上記のpts / dtsの計算に何か問題がありますか?
次の表は、タイムスタンプがどのように再スケーリングされるかを示しています (オリジナル -> 再スケーリング)
video - ビデオ フレームの PTS と DTS について
avi から mp4(x264) にトランスコードするときに fps の問題が発生しました。最終的に問題は PTS と DTS の値にあったため、12 ~ 15 行目が av_interleaved_write_frame 関数の前に追加されました。
多くの投稿を読んだ後、私はまだ理解していません:
outStream->codec->time_base
= 1/25 およびoutStream->time_base
= 1/12800。最初のものは私が設定しましたが、なぜ、誰が 12800 を設定したのかわかりません。行 (7) の前outStream->time_base
= 1/90000 で、その直後に 1/12800 に変わることに気付きました。なぜですか? avi から avi にトランスコードすると、行 (2) が に変更されるavformat_alloc_output_context2(&outContainer, NULL, "avi", "c:\\test.avi";
ので、行 (7) の前後outStream->time_base
は常に 1/25 のままで、mp4 の場合とは異なります。なぜですか?outStream->codec
との time_base の違いは何outStream
ですか?- pts
av_rescale_q
を計算するには: 2 つの time_base を取り、それらの分数をクロスで乗算し、pts を計算します。なぜこのようにするのですか?私がデバッグしたように、encodedPacket.pts
値が 1 ずつ増加するので、値があるのになぜそれを変更するのでしょうか? - 最初の dts 値は -2 で、再スケーリングのたびにまだ負の数になっていますが、それでもビデオは正しく再生されました! ポジティブでいいのではないですか?
video - コンテナとコーデックのタイムベースが異なるのはなぜですか?
ビデオ情報を取得するためにffmpegを使用しました。出力は
タイムベースは、フレームをデコードして表示するタイミングを計算するために使用されます(これは私の別の質問でもあります)。では、コンテナ(12800)とコーデック(50)のどちらのタイムベースが使用されますか?
もう1つの質問は、なぜtbn = 12800であり、90000ではないのかということです。
bash - 別のptsからstdoutをキャプチャする方法は?
2 つの端末セッション pts/10 と pts/11 があるとします。pts/10 では、pts/11 で発生するすべてのプロセスの stdout をキャプチャして、ファイルにリダイレクトしたいと考えています。出力を pts/11 自体から (>/dev/pts/10 を使用して) リダイレクトできることはわかっていますが、そうしたくありません。私が言ったように、pts/11 によって stdout に出力されているものは何でも「キャプチャ」したいと考えています。それを行うためのユーティリティはありますか?
ffmpeg - FFMPEGで変換中にPTSをリセットする方法
*.ts ファイルを ffmpeg で変換する際に、開始ポイントを 10 またはその他のポイントに設定したいと考えています。どうやってやるの?
setptsが役立つと言う人もいます。試しましたが、失敗しました。たぶん私のコマンドは正しくないので、正しい方法は何ですか?