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

flash google-chrome linux ubuntu video

動画を残すのが好きだから

  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)

私はフラッシュプロセスのために開いているファイルを見ようとしましたが、削除されたフラッシュファイルは見当たりませんでした

$ 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にしてみました

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

しかし、write/writev/selectコールを見ると、/proc/_/fd/がパイプ/ソケット(おそらくプロセスがお互いに話をするためのもの)であることを示したいくつかのFDを指し示しているだけでした。npviewer.bin プロセスでも同じことを試してみた

また、/proc/*/fd/で指し示されたファイル(任意のプロセス)のうち、最近変更されたものをすべて単純に検査してみましたが、flvが含まれているようなものは見つかりませんでした。また、~/.cache/google-chrome/の下にある最近変更されたファイルについても同様の検査を試みましたが、flvが含まれているように見えるものは見つかりませんでした

違いがあるとすれば、私が使っているChromeのdevチャンネルリリースは、独自のセキュアなFlash実装を使用していると信じている(いつも?)。このアップデートの時点では、私は Chrome 10.0.648.45 dev を使用しています。http://www.adobe.com/software/flash/about/によると、私は10.2.152.27を実行しています。私は今、いくつかのUbuntuのボックスで試してみました。私はまた、同じ結果で、現在いくつかのUbuntuのボックスで試してみました

他に誰かこれに手を出したい人は?

  37  Yang  2011-01-20


ベストアンサー

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

私はこのいくつかの時間の年齢について書いた。ほぼ削除されたファイルからフラッシュ動画を取得する

ただし、Flashプラグインのバージョンに依存します。これまでは/tmpやブラウザのキャッシュにも動画を保存していました

31  liori  2011-02-08


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

doing an:

$ 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  2011-02-11


フラッシュストリームは、ほとんどの場合、httpリクエストで取得するシンプルなファイルです

http://blip.tv/file/3627639での動画の場合

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

Fosslc-..
/file/get

それをクリックして、’Request URL’フィールドから新しいタブにURLをコピー/ペーストしてください

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

10  Doud  2011-04-07


Yang,

そう、~/.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

あとはファイルコマンドを実行すれば、どれが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  2011-02-07


chromium 11.0.666.0とflashプラグイン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  2011-02-15


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

lsof | grep Flash

3  jyap  2011-02-04


新しいプレイヤーの中には、これらの仕掛けを使えないようにしようとして、メモリ内でバッファリングしている人もいます。その場合は何も得られません

3  geekosaur  2011-03-14


この問題を解決しました。手順はこんな感じです

  1. クローム/モジラにインストールされているプラグイン 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 this folderにダウンロードされます

ご覧ください http://www.arulraj.net/2011/03/google-chrome-download-video.html

3  Arul  2011-03-19


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
    

    or

    lsof -p Flash_plugin_pid | grep -i deleted
    

    削除されたファイルを探してください

  3. /proc/[pid]/fd/[fileno]からrecovered_file.flvにコピーします

2  HKVC  2011-05-20


私はUbuntu 10.04でクローム11.06を使用しています。私のflvファイルは~/.cache/google-chrome/Default/Cacheにありました。を試してみてください

file * | grep Flash\ Video

2  user733032  2011-06-06


私からのちょっとしたヒント。これは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  2011-09-26


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  2011-10-06


私は/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  2012-04-02


タイトルとURLをコピーしました