Linux上のGoogle Chromeでは、/ tmpにない場合のflvはどこにありますか?


37

私はビデオを保つのが好きです

  1. バッファリングしてから、メディアプレーヤーで連続して再生するのが好きです。
  2. バッファされたビデオをすべて失うことなく、ブラウザを停止/再起動できるようにしたい
  3. Flashは頻繁にクラッシュし、灰色のボックスが表示されます。

Flashビデオを含む多くのサイト(Youtubeを含む)で/tmp、通常はという名前のflvファイルを見つけることができますFlashXX...。ただし、http//blip.tv/file/3627639など、このファイルが表示されないサイトもあります。これがディスクにまったくスプールされていない可能性がありますが、RAMに大きな影響を与えずに1時間のビデオ全体をバッファリングできるため、これは驚くべきことです。

Firefoxでは、キャッシュディレクトリ内でflvを見つけることができます。しかし、私はChromeでこれを行う方法に興味があります。〜/ .cache / google-chrome /の下を調べてみましたが、適切なものが見つかりませんでした。例えば:

$ ls -lt .cache/google-chrome/Cache/ | head
total 261492
-rw------- 1 yang yang 16621568 2010-12-05 03:41 data_1
-rw------- 1 yang yang   966656 2010-12-05 03:40 data_0
-rw------- 1 yang yang 23076864 2010-12-05 03:40 data_2
-rw------- 1 yang yang   262512 2010-12-05 03:40 index
-rw------- 1 yang yang   108412 2010-12-05 03:35 f_005603
-rw------- 1 yang yang    62607 2010-12-05 03:32 f_005602
-rw------- 1 yang yang    54998 2010-12-05 03:32 f_005601
-rw------- 1 yang yang    31127 2010-12-05 03:32 f_005600
-rw------- 1 yang yang   799389 2010-12-05 03:32 f_0055ff

$ ls -1t ~/.cache/google-chrome/Cache/* | head | xargs file
/home/yang/.cache/google-chrome/Cache/data_1:   data
/home/yang/.cache/google-chrome/Cache/data_0:   data
/home/yang/.cache/google-chrome/Cache/data_2:   data
/home/yang/.cache/google-chrome/Cache/index:    data
/home/yang/.cache/google-chrome/Cache/f_005603: GIF image data, version 89a, 600 x 471
/home/yang/.cache/google-chrome/Cache/f_005602: PNG image, 600 x 746, 8-bit colormap, non-interlaced
/home/yang/.cache/google-chrome/Cache/f_005601: PNG image, 140 x 342, 8-bit/color RGB, non-interlaced
/home/yang/.cache/google-chrome/Cache/f_005600: JPEG image data, JFIF standard 1.02
/home/yang/.cache/google-chrome/Cache/f_0055ff: JPEG image data, JFIF standard 1.02
/home/yang/.cache/google-chrome/Cache/f_0055fe: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)

Flashプロセスの開いているファイルを調べてみましたが、削除されたFlashファイルは表示されませんでした。これには、以下の答えが存在するはずです。

$ ps x | grep npviewer
27148 ?        Rl     0:24 /usr/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin /usr/lib/flashplugin-installer/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/27135-2
27504 pts/2    S+     0:00 grep --color=auto npviewer

$ ls -l /proc/27148/fd/
total 0
lr-x------ 1 yang yang 64 2011-02-16 13:48 0 -> /dev/null
lrwx------ 1 yang yang 64 2011-02-16 13:48 1 -> /home/yang/.xsession-errors
l-wx------ 1 yang yang 64 2011-02-16 13:48 10 -> /home/yang/.mozilla/firefox/8wy5j0z2.default/key3.db
lrwx------ 1 yang yang 64 2011-02-16 13:48 11 -> pipe:[5500575]
lrwx------ 1 yang yang 64 2011-02-16 13:48 12 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 13 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 14 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:48 15 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 16 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 17 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 18 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:48 19 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 2 -> /home/yang/.xsession-errors
lrwx------ 1 yang yang 64 2011-02-16 13:48 20 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 21 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 22 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 23 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 24 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 25 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 26 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 27 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 28 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 29 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 3 -> socket:[5496032]
lrwx------ 1 yang yang 64 2011-02-16 13:51 30 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 31 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 32 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 33 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 34 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 35 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:53 36 -> pipe:[5500575]
lr-x------ 1 yang yang 64 2011-02-16 13:53 37 -> pipe:[5500576]
l-wx------ 1 yang yang 64 2011-02-16 13:53 38 -> pipe:[5500576]
lrwx------ 1 yang yang 64 2011-02-16 13:53 39 -> socket:[5500580]
lrwx------ 1 yang yang 64 2011-02-16 13:48 4 -> socket:[5496131]
lr-x------ 1 yang yang 64 2011-02-16 13:48 5 -> pipe:[5496139]
l-wx------ 1 yang yang 64 2011-02-16 13:48 6 -> pipe:[5496139]
lr-x------ 1 yang yang 64 2011-02-16 13:48 7 -> socket:[5496140]
l-wx------ 1 yang yang 64 2011-02-16 13:48 8 -> socket:[5496141]
lr-x------ 1 yang yang 64 2011-02-16 13:48 9 -> /home/yang/.mozilla/firefox/8wy5j0z2.default/cert8.db

straceファイルを書き込んでいるように見えるものについて、すべてのchromeプロセスを試しました。

strace -p (pgrep chrome|xargs -I_ echo -p _)

write/ writev/ select呼び出しを見ると、/proc/_/fd/パイプ/ソケットであることが示されたいくつかのFDのみが示されました(おそらくプロセスが相互に通信するためです)。npviewer.binプロセスでも同じことを試みました。

また、私は単純にすべてのファイルがで指さ検査しようとした/proc/*/fd/任意の最近変更されたが、それはFLVファイルを含んように見えた何かを見つけることができませんでしたプロセス)。また、最近変更されたファイルで同じチェックを試みました~/.cache/google-chrome/

それが違いを生む場合、私はChromeのdevチャンネルリリースを使用しています。これは(常に?)独自の安全なFlash実装を使用していると信じています。この更新の時点では、Chrome 10.0.648.45 devを使用しています。http://www.adobe.com/software/flash/about/によると、10.2.152.27を実行しています。私はいくつかのUbuntuボックスで試しました。私もいくつかのUbuntuボックスで試しましたが、同じ結果になりました。

他の人はこれを刺したいですか?


問題が発生しているページへのリンクを提供すると役立つ場合があります。
ソフィーアルパート

@ベン:おっと、それをするつもりだった。追加しました!
ヤン

回答:


31

最近のFlashプラグインは/ tmpにファイルを保存することを確認しましたが、それらを削除してファイルハンドルを開いたままにしておくと、それらが生き続けることができます。つまり、ファイルハンドルがフラッシュプラグインによって開かれている限り、ドライブ上に保持されますが、ディレクトリリストには表示されません(ファイルが削除されているため)。

私はこの時代について書きました:ほとんど削除されたファイルからフラッシュビデオを取得する

しかし、それはすべてFlashプラグインのバージョンに依存します。以前は、/ tmpまたはブラウザのキャッシュにもムービーを保存していました。


あなたの非常に興味深いブログ記事では、Firefoxでこれを行う方法について説明していますが、Chromeを使用してこれを行う方法を知りたいのです。lsofと/ procを見てきましたが、リンクされていないファイルの兆候は見つかりませんでした。サンプル動画で成功しましたか?
ヤン

1
@Yang:少なくとも私のノートブックでは、クロムとまったく同じ方法で動作しますが、テスト済みです。ウェブブラウザよりもフラッシュプレイヤーに依存していると思います。Flashプラグインのバージョンは何ですか?
リオリ

するためによるとadobe.com/software/flash/about私はフラッシュ(クローム10.0.648.45のDEVを使用して)Chromeに組み込まれていると思う10.2.152.27を、実行していますよ。私はいくつかのUbuntuボックスで試しました。
ヤン

2
注として、以前はすべてのフラッシュムービープレーヤーで動作していましたが、もうそうではないようです。あまり知られていないサイトでも動作するようですが、Youtubeでは動作しません。私はYouTubeのファイルシステムオフファイルを維持する方法...見つけたことを推測することができます
liori

1
それはまだクロムバージョン33.0.1750.152-1(Debianのジェシー)とのFlashPlayerバージョン11,2,202,346(によると私の作品adobe.com/software/flash/about
jopasserat

24

/ proc // fd /をチェックすると、私にとってはうまくいきました。

$ ps x | grep npviewer
24657 ?        Sl    12:33 /usr/lib/nspluginwrapper/i386/linux/npviewer.bin ...
$ cd /proc/24657/fd
$ ls -l
total 0
lr-x------ 1 omab omab 64 2011-02-11 02:13 0 -> /dev/null
lrwx------ 1 omab omab 64 2011-02-11 02:13 1 -> /home/omab/.xsession-errors
lr-x------ 1 omab omab 64 2011-02-11 02:13 10 -> /home/omab/.mozilla/firefox/og3emjry.default/key3.db
lrwx------ 1 omab omab 64 2011-02-11 02:13 11 -> /tmp/FlashXX0WG0J5 (deleted)
lr-x------ 1 omab omab 64 2011-02-11 02:13 12 -> pipe:[9004372]
...

「(削除済み)」とマークされたファイル11は、/ tmp /に最初に作成されたファイルを指しているため、完全には削除されません。

$ file -L 11 
11: Macromedia Flash Video

を行う:

$ mplayer 11

FLVファイルを再現します。


上記の手順から変更した非常に便利なコマンドラインを次に示します。ディストリビューション/インストール、および通常実行しているプロセスを微調整する必要がある場合があります。

あなたは置き換えることができますflashnpviewer置き換え、vlcmplayer

FLASHPID=\`pgrep -f flash\`; vlc /proc/$FLASHPID/fd/\`ls -l /proc/$FLASHPID/fd | grep tmp | cut -d" " -f9\`

これは私には機能しません-私は私の表示内容の詳細で答えを更新しました。なぜそれが私にとってうまくいかないのか知っていますか?今、いくつかのマシンで試しました。
ヤン

ところで、あなたはflvを保存することができますmplayer 11 -dumpstream -dumpfile outputname
-liewl

8
cp 11 / ... / ...をコピーすることができます
omab

10

ほとんどの場合、Flashストリームはhttpリクエストによって取得される単純なファイルです。

あなたのビデオのために http://blip.tv/file/3627639

Google Chromeでは、ネットワークリクエストを検査できます(ctrl + shift + i

Fosslc-..
/file/get

それをクリックし、「リクエストURL」フィールドから新しいタブにURLをコピーして貼り付けます

http://blip.tv/file/get/Fosslc-2...to823.flv?showplayer=20110401114509&source=1


素晴らしい!実際に私のために働いたので、私はあなたの答えを受け入れたくなりますが、他の答えが実際にダウンロードされたflvを見つけるのに対処するかどうかを確認するためにもう少し待ちます。
ヤン

それはあなたの場合の単なるトリックであるため、受け入れないでください。地獄のフラッシュが一時的なビデオファイルをどこに保存するかを本当に知りたいです。
ダウド

へえ、大丈夫。私も知りたいです。私の予想では、おそらくブラウザ固有のヒープであるdata_ *ファイルのどこかに格納されています。ただし、Chromeのコードベースに飛び込むまでは、それらを調べるツールは見つかりませんでした。
ヤン

9

ヤン、

うん、〜/ .cache / google-chrome / Cacheにあります(まあ、Chromiumをインストールしているので、〜/ .cache / chromium / Cacheにあります)。

ビデオを見て、タイムスタンプで並べ替える場合:

$ ls -rt | tail
f_00003a
f_00003b
f_00003c
f_00003d
data_2
data_3
index
data_1
f_000040
data_0

次に、fileコマンドを実行すると、どれがFlashであるかがわかります。

$ file $(ls -rt | tail)
f_00003a: Macromedia Flash data (compressed), version 9
f_00003b: Macromedia Flash data (compressed), version 9
f_00003c: Macromedia Flash data (compressed), version 10
f_00003d: PNG image data, 1024 x 768, 8-bit/color RGBA, non-interlaced
data_2:   data
data_3:   data
index:    data
data_1:   data
f_000040: Macromedia Flash Video
data_0:   data

OK、Google Chromeをインストールして確認しました。

Google ChromeのディレクトリはChromiumとわずかに異なるようです。

同じ手法を使用して(ここではブラウザーのプロセスIDを指定し、出力を明確にするためにいくつかの列を削除しました):

$ lsof -p 27922 | grep Cache
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/index
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_3
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_2
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_1
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_0
chrome  27922  71u    ~/.cache/google-chrome/Default/Cache/index
chrome  27922  72u    ~/.cache/google-chrome/Default/Cache/data_0
chrome  27922  73u    ~/.cache/google-chrome/Default/Cache/data_1
chrome  27922  74u    ~/.cache/google-chrome/Default/Cache/data_2
chrome  27922  75u    ~/.cache/google-chrome/Default/Cache/data_3
chrome  27922 111u    ~/.cache/google-chrome/Default/Cache/f_00001a

それは私にとってはうまくいかないので、興味深いです。回答を更新して、表示内容を貼り付けました。私が与えたblip.tv URLの例でそれはあなたのために働きますか?おそらく、Chromeの異なるバージョンが原因です。どちらを使用していますか?
ヤン

ええ、正確なURLを使用しました。コマンドの実行中にファイルを再生しましたか?キャッシュをクリアして、ファイルを再生してからコマンドを実行してください。それは私のために働いて、私はそれが私のために働いたので、Mplayerでファイルを再生することができました!
ジャップ

残念ながら、キャッシュをクリアしても解決しませんでした。はい、これらのコマンドの実行中にファイルが再生されました。より多くの情報で私の答えを更新しました。一部の回答者はFlashプロセスを見るべきだと言い、他はブラウザプロセスの1つを見るべきだと言いますが、すべてのプロセスを見ても両方を試しました。なぜそれが私にとって壊れているかについてのアイデアはありますか?今、いくつかのマシンで試しました。
ヤン

上記の回答を編集して、Google ChromeのプロセスIDを指定し、lsofコマンドを実行しました。試してみてください。
ジャップ

5

クロム11.0.666.0およびフラッシュプラグイン10.2.152を使用

npviewerのgreppingはフラッシュプロセスを生成しませんでしたが、フラッシュのgreppingは生成します。

$ ps x | grep flash
11005 ?        Rl     2:30 /usr/lib/chromium-browser/chromium-browser ... 

基本的に上記のjyapと同じもの

lsof | grep Flash

その後、上記のように続行できます...


これは私には機能しません-私は私の表示内容の詳細で答えを更新しました。なぜそれが私にとってうまくいかないのか知っていますか?今、いくつかのマシンで試しました。
ヤン

3

開いているファイルをリストしてみてください。

lsof | grep Flash

これはあなたのために働きましたか?私にとっては何も表示されません-典型的なFlash *ファイルが通常の場所に表示されないことを考えると、どちらも表示されないでしょう。
ヤン

3

一部の新しいプレーヤーは、人々がこれらのトリックを使用できないようにするためにメモリにバッファリングします。その場合、何も取得できません。


これは有用な情報であり、RAMをプローブする方法がわからないことを念頭に置いて(可能な限り)、「何も取得できない」ことに同意しません。意志があるところには、方法があります。
user66001

3

この問題を修正しました。ここに手順があります

  1. Gotoはchrome / mozillaのプラグインに関するプラグインをインストールしました:
  2. 詳細をクリックして詳細を表示します。Flashプラグインを無効にします。プラグインの場所は「/usr/lib/adobe-flashplugin/libflashplayer.so」になります
  3. http://get.adobe.com/flashplayer/からフラッシュプレーヤーのtar.gzバージョンをダウンロードし ます。
  4. そのファイルを抽出し、libflashplayer.soを/ usr / lib / chromium-browser / pluginsにコピーします。次に、プラグインページでこれを有効にします。
  5. ビデオを視聴すると、/ home //。cache / chromium / Default / Cacheこのフォルダーにダウンロードされます

見てhttp://www.arulraj.net/2011/03/google-chrome-download-video.html


2

Linux上の最新のChromeの場合:

  1. Chromeで使用されるFlashプラグインのPIDを特定します。

    ps ax | grep -i chrome | grep -i flash 
    

    現在、プラグインはと呼ばれていlibgcflashplayerます。

  2. このFlashプラグインプロセスによって開かれたFlashファイルを特定します。

    file /proc/Flash_Plugin_PID/fd/* | grep -i deleted
    

    または

    lsof -p Flash_plugin_pid | grep -i deleted
    

    削除されたファイルを探します。

  3. ファイルをコピー/proc/[pid]/fd/[fileno]しますrecovered_file.flv


2

Ubuntu 10.04でchrome 11.06を使用しています。〜/ .cache / google-chrome / Default / Cacheでflvファイルを見つけました。試してみる

file * | grep Flash\ Video

2

私からのちょっとしたヒント。これはUbuntu 10.04で機能します。

#!/bin/bash
viewer=`ps x|grep npviewer|grep -v grep |awk '{print $1}'`
echo $viewer
cd /proc/${viewer}/fd
jef=(`ls -l|awk '{print $8 " " $10}'|grep Flash|awk '{print $1}'`)
echo $jef
jef1=${#jef}
ext=`date +'%d_%m_%k_%M_%S'`
i=0
while [ "$i" -lt "$jef1" ]
do 
cp ${jef[${i}]} /fun/${jef[${i}]}"(${ext})".flv
i=`expr $i + 1`
done

これで、crontabを使用してこのスクリプトをスケジュールできます。FLVファイルが重複しないように最適化できます。


2

KubuntuでFirefoxを使用する:

export COUNT=0
export FILENAME=$1
export FILENAME=${FILENAME:=test}

PID=`ps ax | grep -i flashplugi[n] | awk '{print $1}'`
FLASH=`ls -l /proc/$PID/fd| grep Flash | awk '{print $8}'`

for N in $FLASH ; do
  COUNT=$(($COUNT+1))
  cp /proc/$PID/fd/$N ${FILENAME}_${COUNT}.flv
done

0

/ procにあるファイル記述子に基づいてそれを行う別の方法があります(数行で最新のbashを使用しています)

#!/bin/bash

process="flash"
filename="flash"

readlink -f /proc/$$/exe | fgrep -q bash || {
    echo >&2 "Hey dude ! You must call $0 with bash !"
    exit 2
}

. ~/.bashrc || . /etc/profile

count=1
for pid in $(pgrep -f $process); do
    fds=$(file /proc/$pid/fd/[0-9]* | fgrep Flash | cut -d: -f1)
    for fd in $fds; do
        cp -v $fd ${filename}_${count}.flv
        ((count++))
    done
done

# vim:ts=4:sw=4
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.