web-dev-qa-db-ja.com

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

私はビデオを保持したいので

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

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

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

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

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

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

また、最近変更された/proc/*/fd/anyプロセス)でポイントされているすべてのファイルを単純に検査しようとしましたが、含まれているように見えるものは見つかりませんでしたflv。 ~/.cache/google-chrome/で最近変更されたファイルに対しても同じチェックを試みました。

それが違いを生む場合、私はChromeの開発チャネルリリースを使用しています。これは、常に(常に?)独自のセキュアなFlash実装を使用していると思います。このアップデートの時点で、私はChrome 10.0.648.45 devを使用しています。 http://www.Adobe.com/software/flash/about/ によると= = 10.2.152.27を実行しています。いくつかのUbuntuボックスを試しましたが、いくつかのUbuntuボックスも試しましたが、結果は同じです。

他の誰かがこれを試してみたいですか?

37
Yang

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

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

しかし、それはすべてFlashプラグインのバージョンに依存します。/tmpまたはブラウザのキャッシュにも映画を保存するために使用されていました。

31
liori

/ 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\`
24
omab

ほとんどの場合、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

10
Doud

ヤン、

ええ、それは〜/ .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
9
jyap

クロム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

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

5
dino

この問題を修正しました。ここにステップがあります

  1. chrome/mozillaのインストール済みプラグインabout:pluginsに移動します
  2. 詳細をクリックすると、詳細が表示されます。 Flashプラグインを無効にします。プラグインの場所は「/usr/lib/Adobe-flashplugin/libflashplayer.so」です。
  3. ここからtar.gzバージョンのフラッシュプレーヤーをダウンロードします http://get.Adobe.com/flashplayer/
  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

3
Arul

開いているファイルを一覧表示してみてください。

lsof | grep Flash
3
jyap

新しいプレイヤーの中には、これらのトリックを使用できないようにするためにメモリにバッファリングするものがあります。その場合、何も入手できなくなります。

3
geekosaur

私からのちょっとしたアドバイス。これは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
burkass

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

file * | grep Flash\ Video
2
user733032

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
HKVC

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
2
verzonnen

/ 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
0
Gilles Quenot