お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2013-03-23 19:22:37

Uruos
メンバ
登録日: 2008-05-01

ffmpegによる特定の動画で、Nautilusのサムネイルが乱れる件

ffmpegによる特定の動画で、Nautilusのサムネイルが乱れる件

12.04 Nautilus 上で、特定の動画サムネイルに乱れが生じる件について。各オプションの妥当性、(不足なものやら余計なものやら)ご指摘下さい。

ubuntu12.04 Unity / Core2Duo E8500 3.16GHz / 4GB Mem
ffmpeg version 0.8.5-4:0.8.5-0ubuntu0.12.04.2+codecs1
medibuntu 等導入してDVDの再生、オーサリング可能な環境です。

お世話になります。宜しくお願いします。少し冗長かもしれませんが、問題を認識するに至った経緯を順を追って述べます。

以前仕事で撮り溜めた資料動画をオーサリングしたDVDメディアが若干数あります。一部のDiscで、劣化の影響かDVDデッキで視聴困難なエラーが頻発しだしました。

私の認識の甘さから、DVDに焼くことイコールバックアップだと思っていたので、オーサリング前の元データバックアップが存在しません。

幸い何故かPC上では問題無く読めるようなので、今の内に救い出したいと思い、

コード:

$ cat /dev/sr0 > hoge.iso

でメディアからISOを取り出しました。メディアの枚数分ISOを取り出し、視聴確認の上でこれを全てHDDに保存しました。

上記データを普段、頻繁に閲覧使用したらバックアップにならないので、別途閲覧用のデータを用意することにしますが、容量が大きく使い勝手も悪いので、ffmpegでエンコードして閲覧用データはmp4形式に圧縮することにしました。

ISOファイルをCDemuでマウントしNautilusで開いてVOBファイルを抜き出し、下記コマンドで分断されたVOBを一つに連結しました。

コード:

$ cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB > hoge.VOB

そうやって出来たVOBファイルを枚数分同じディレクトリに配置し、下記を実行。(エンコ知識に乏しく、ググった結果の付け焼き刃で適切なのか自信は皆無です)

コード:

$ for nf in *.VOB; do ffmpeg -y -i $nf -threads 0 -flags +loop+bitexact+global_header -flags2 +mixed_refs -vcodec libx264 -me_method umh -rc_lookahead 40 -sws_flags lanczos -b_strategy 2 -me_range 16 -subq 8 -g 250 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -i_qfactor 0.71 -dts_delta_threshold 1 -deblockalpha 0 -deblockbeta 0 -vf "yadif=0,scale=720:404,setdar=16:9" -r 29.97 -b 1600k -pass 1 -an -f mp4 /dev/null; ffmpeg -async 1 -i $nf -threads 0 -flags +loop+bitexact+global_header -flags2 +mixed_refs -vcodec libx264 -me_method umh -rc_lookahead 40 -sws_flags lanczos -b_strategy 2 -me_range 16 -subq 8 -g 250 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -i_qfactor 0.71 -dts_delta_threshold 1 -deblockalpha 0 -deblockbeta 0 -vf "yadif=0,scale=720:404,setdar=16:9" -r 29.97 -b 1600k -pass 2 -acodec libvo_aacenc -ac 2 -ar 48000 -ab 128k ${nf%.VOB}.mp4; done

2パスエンコードなので、それなりに時間がかかりましたが、これで用意した分のVOBファイルを全てmp4動画に一括変換できました。

視聴については、画質も遜色なく、音ズレもなく、今のところ満足なのですが、上記でエンコードした動画のサムネイル表示に限って結構な確率で難が出ます。
ブロック状に所々欠けた荒れた画像っぽいサムネイルとでも言いますか、多分Bフレームの不完全な画像とかを参照してるのだと推測していますが、思い当たるキーワード(ffmpeg サムネイル 汚い Bフレーム)等で検索しても今の所、同じ現象の記述に行き当たらずにおります。
それらしき箇所の数値を試行錯誤し、改善したと思っても又再発したりして根本的解決に至っておりません。

閲覧用としての用途は充分満たしていますが、やはり何か釈然としないので、サムネイル表示についても是非改善したいと思っています。
足りない、若しくは余計なオプション、数値の間違い、更に本題に限らず他にも直すべき箇所でお気付きの点がありましたら、御教示下さいますようお願い申し上げます。

オフライン

 

#2 2013-04-02 07:16:10

Uruos
メンバ
登録日: 2008-05-01

Re: ffmpegによる特定の動画で、Nautilusのサムネイルが乱れる件

質問者です。 お世話になっております。

 仕事場の製造工程を時系列に沿って撮影して並べた動画なので、これまではメニュー付きのDVDに焼いて上司や同僚が容易に画像を選択、閲覧しやすいように工夫していました。
 データはなんとか救えたので、最悪の結果は免れたのですが、再びDVDに焼くことはせず、元データは温存、軽くした視聴用データをHDD上に置き、閲覧するやり方に方針が変わってしまいました。
 ファイルに選別可能な具体的ネーミングをしてお茶を濁せればいいのですが、曲がりなりにも直感的に絵(サムネ)を見ながら選択、閲覧したいということで、現状の汚いサムネイルでは、見る以前にファイルが破損していると言われかねません。

 引き続き調べて幾つか試みてみたところ、根本的な解決ではありませんが、方法の一つとして、 -vcodec libx264 を  -vcodec mpeg4 に変えたところ、MP4でサムネイルが乱れる現象は回避できました。 このまま手詰まりならこれで良しとするつもりですが・・・
 しかし、同等の画質で比べると、データの圧縮率はx264の方が圧倒的に優秀なようで、かなり差がありました。 この差は結構捨て難いものがあるので、もう暫く有益な助言を待ちたいと思います。

 又、もう一つの解決策として、ファイルマネージャ側のサムネイル生成過程で、強制的に綺麗なフレームを選んで参照するよう設定する方法がもし存在するならば、その手も有りかと気付いて調べている最中ですので、こちらの情報も宜しくお願い致します。

オフライン

 

Board footer

Powered by FluxBB