動画を残すのが好きだから
- バッファリングして、メディアプレーヤーで再生するのが好きです
- バッファリングされた動画を全て失うことなく、ブラウザを停止/再起動できるようにしてほしい
- 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ファイルが再生されます
ここに、上記の手順を応用した非常に便利なコマンドラインがあります。これは、あなたのディストリビューション/インストールや、あなたが普段どのようなプロセスを実行しているかに合わせて、ちょっとした調整が必要になるかもしれません
flash
をnpviewer
に、vlc
をmplayer
に置き換えることができます
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をコピー/ペーストしてください
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
この問題を解決しました。手順はこんな感じです
- クローム/モジラにインストールされているプラグイン about:pluginsを後藤がインストールしました
- 詳細をクリックして詳細を表示します。Flashプラグインを無効にします。プラグインの場所は「/usr/lib/adobe-flashplugin/libflashplayer.so」になります
- ここからフラッシュプレーヤーのtar.gz版をダウンロード http://get.adobe.com/flashplayer/
- そのファイルを展開し、libflashplayer.soを/usr/lib/chromium-browser/pluginsにコピーします。そして、プラグインページでこれを有効にします
- あなたが任意のビデオを表示する場合、それは/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の場合
Chromeで使用されているFlashプラグインのpidを識別します
ps ax | grep -i chrome | grep -i flash
現在のところ、プラグインは
libgcflashplayer
と呼ばれていますこのFlashプラグインプロセスによって開かれたFlashファイルを識別します
file /proc/Flash_Plugin_PID/fd/* | grep -i deleted
or
lsof -p Flash_plugin_pid | grep -i deleted
削除されたファイルを探してください
/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