ubuntu 14.04 firefox H.264 及 MSE & H.264 問題 [論壇 - Ubuntu基本設定]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

« 1 (2)


回覆: ubuntu 14.04 firefox H.264 及 MSE & H.264 問題
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 901
MP : 671 / 29267
EXP: 6
離線
dinosaur168 寫到:
用 ubuntu 14.04LTS 灌起來的都有以上問題(我也灌過 xfce LTS)

但是 灌在 ubuntu 16.04 上 就沒有以上的問題 真神奇

搞了兩三天 sweat !!! but anyway , thanks a lot !


要先說聲抱歉!

我之前安裝好「XUbuntu 14.04」好,就直接測試「firefox」,並沒有去升級「firefox」,所以測試是正常的。

我剛在「14.04」把「firefox」升級到「50.0」,就會出現樓主一開始提到的狀況了。

初步猜測,應該跟相依的lib有關,可以參考上面的一些回覆分析

* #3 (16.04) (firefox 50.0)「/usr/lib/x86_64-linux-gnu/libavutil-ffmpeg.so.54.31.100」和「/usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so.56.60.100」

* #9 (14.04) (非firefox 50.0)「/usr/lib/x86_64-linux-gnu/libavutil.so.52.3.0」和「/usr/lib/x86_64-linux-gnu/libavcodec.so.54.35.0」


小弟不才,目前還不知道怎麼進一步確認,還有解決這個問題。

只是先來回報這個狀況。





## 以下暫記

執行下面指令,下載「firefox」的「Source Package」。


$ apt-get source firefox



利用「libav」當關鍵字查詢,


$ grep libav firefox-50.0+build2/* -R -n



可以看到下面的訊息


...略...
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:30: "libavcodec.57.dylib",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:31: "libavcodec.56.dylib",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:32: "libavcodec.55.dylib",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:33: "libavcodec.54.dylib",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:34: "libavcodec.53.dylib",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:36: "libavcodec-ffmpeg.so.57",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:37: "libavcodec-ffmpeg.so.56",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:38: "libavcodec.so.57",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:39: "libavcodec.so.56",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:40: "libavcodec.so.55",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:41: "libavcodec.so.54",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:42: "libavcodec.so.53",
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:151: return "Invalid FFMpeg libavcodec candidate";
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:153: return "Unusable LibAV's libavcodec 57";
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:155: return "Invalid LibAV libavcodec candidate";
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:157: return "Obsolete FFMpeg libavcodec candidate";
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:159: return "Obsolete LibAV libavcodec candidate";
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp:161: return "Invalid libavcodec candidate";
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.h:28: LinkStatus_INVALID_LIBAV_CANDIDATE, // Found libav with unexpected contents.
...略...



以下摘錄「firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp」


...略...
static const char* sLibs[] = {
#if defined(XP_DARWIN)
"libavcodec.57.dylib",
"libavcodec.56.dylib",
"libavcodec.55.dylib",
"libavcodec.54.dylib",
"libavcodec.53.dylib",
#else
"libavcodec-ffmpeg.so.57",
"libavcodec-ffmpeg.so.56",
"libavcodec.so.57",
"libavcodec.so.56",
"libavcodec.so.55",
"libavcodec.so.54",
"libavcodec.so.53",
#endif
};
...略...



## 剛好最近有找到相關的文章,一併列出來參考

* [心得] 用gcc 自製 Library
* Creating a shared and static library with the gnu compiler [gcc]
* Program Library HOWTO

2016/11/25 12:03
應用擴展 工具箱
回覆: ubuntu 14.04 firefox H.264 及 MSE & H.264 問題
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 901
MP : 671 / 29267
EXP: 6
離線
在「Ubuntu 14.04」「Firfox 50.0」找到一個解法了 (我測試是在Xubuntu 14.04)

我一開始,先執行下面指令安裝「libavcodec54」這個套件。


$ sudo apt-get install libavcodec54



一開始還是不能播放,


後來在原始碼找到一個線索

執行下面指令,下載「firefox」的「Source Package」。


$ apt-get source firefox



利用「libav」當關鍵字查詢,


$ grep libav firefox-50.0+build2/* -R -n



可以找到兩行


...略...
firefox-50.0+build2/testing/profiles/prefs_general.js:349:// Don't block old libavcodec libraries when testing, because our test systems
firefox-50.0+build2/testing/profiles/prefs_general.js:351:user_pref("media.libavcodec.allow-obsolete", true);
...略...



所以做了以下的嘗試

在「14.04」,在「firefox 50.0」網址列輸入「about :config」,

然後搜尋「media.libavcodec.allow-obsolete」

將值改「true」。

重開「firefox」。

在「14.04」,「firefox 50.0」就能正常播放了。



================================================

註:

* 或是安裝「libavcodec-extra-54」這個套件也可以,兩個只能安裝其中一個。

執行


apt-cache show libavcodec54 | grep Conflicts:



顯示


Conflicts: libavcodec-extra-54



* 若是安裝「libavcodec54」這個套件。

執行


$ dpkg -L libavcodec54



顯示


/.
/usr
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libavcodec54
/usr/share/doc
/usr/share/doc/libavcodec54
/usr/share/doc/libavcodec54/codecs-amd64.txt.gz
/usr/share/doc/libavcodec54/copyright
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libavcodec.so.54.35.0
/usr/share/doc/libavcodec54/changelog.Debian.gz
/usr/lib/x86_64-linux-gnu/libavcodec.so.54



* 若是安裝「libavcodec-extra-54」這個套件。

執行


$ dpkg -L libavcodec-extra-54



顯示


/.
/usr
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libavcodec-extra-54
/usr/share/doc
/usr/share/doc/libavcodec-extra-54
/usr/share/doc/libavcodec-extra-54/codecs-amd64.txt.gz
/usr/share/doc/libavcodec-extra-54/copyright
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libavcodec.so.54.35.0
/usr/share/doc/libavcodec-extra-54/changelog.Debian.gz
/usr/lib/x86_64-linux-gnu/libavcodec.so.54




* Firefox Profile

有經過一開始提到的「about :config」設定「media.libavcodec.allow-obsolete」為「true」,
就可以在profile/prefs.js找到。

執行下面指令。


$ cat ~/.mozilla/firefox/95uqiqhp.default/prefs.js | grep libav



顯示


user_pref("media.libavcodec.allow-obsolete", true);



上面的路徑「95uqiqhp.default」每個人都不同,
是一開始建立profile時,隨機產生的。

關於profile的路徑,系統預設的firefox還會根據一個檔「~/.mozilla/firefox/profiles.ini」。

在執行「firefox」也可以自行指定profile的路徑,
可以執行「man firefox」或是「firfox -h」閱讀相關參數說明,
或是參考之前一篇討論的「回覆#2」。

還有一點要注意的「/usr/bin/firefox」是一個「shell script」,
是「symbolic link」到「/usr/lib/firefox/firefox.sh」
可以執行「ls /usr/bin/firefox -l」就可以了解。
真正的firefox執行檔,則是「/usr/lib/firefox/firefox」。
執行「dpkg -L firefox」就可以找到路徑。

================================================

## 更多原始碼探索

執行


$ grep 'media.libavcodec.allow-obsolete' firefox-50.0+build2/* -R -n



顯示


firefox-50.0+build2/dom/media/MediaPrefs.h:113: DECL_MEDIA_PREF("media.libavcodec.allow-obsolete", LibavcodecAllowObsolete, bool, false);
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp:58: // (Unless media.libavcodec.allow-obsolete==true)
firefox-50.0+build2/modules/libpref/init/all.js:348:pref("media.libavcodec.allow-obsolete", false);
firefox-50.0+build2/testing/profiles/prefs_general.js:351:user_pref("media.libavcodec.allow-obsolete", true);
firefox-50.0+build2/testing/talos/talos/config.py:179: 'media.libavcodec.allow-obsolete': True



執行


$ grep 'LibavcodecAllowObsolete' firefox-50.0+build2/* -R -n



顯示


firefox-50.0+build2/dom/media/MediaPrefs.h:113: DECL_MEDIA_PREF("media.libavcodec.allow-obsolete", LibavcodecAllowObsolete, bool, false);
firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp:56: && !MediaPrefs::LibavcodecAllowObsolete()) {




以下摘錄「firefox-50.0+build2/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp」


...略...
if (!isFFMpeg) {
if (macro == 57) {
// Due to current AVCodecContext binary incompatibility we can only
// support FFmpeg 57 at this stage.
Unlink();
return LinkResult::CannotUseLibAV57;
}
#ifdef MOZ_FFMPEG
if (version < (54u << 16 | 35u << 8 | 1u)
&& !MediaPrefs::LibavcodecAllowObsolete()) {
// Refuse any libavcodec version prior to 54.35.1.
// (Unless media.libavcodec.allow-obsolete==true)
Unlink();
return LinkResult::BlockedOldLibAVVersion;
}
#endif
}
...略...


2016/11/25 15:41
應用擴展 工具箱
回覆: ubuntu 14.04 firefox H.264 及 MSE & H.264 問題
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 901
MP : 671 / 29267
EXP: 6
離線
剛想到使用「media.libavcodec.allow-obsolete」當關鍵字,在網路上來查詢,
原來網路幾天前就有在討論這個議題,
下午被我矇中了 :p

以下列從上面關鍵字查詢找到的參考連結

* Firefox 50.0 release notes (中文)


Blocked versions of libavcodec older than 54.35.1



* Firefox 50 blocks Ubuntu 14.04 LTS's version of libavcodec

* How to update libavcodec on ubuntu 14.04 <-- 這篇有提到我上面「回覆12」講的解法,還有圖可以參考。

* “libavcodec may be vulnerable…” message in Firefox (裡面有一個回覆提到,跟security有關)


以上參考


2016/11/25 21:48
應用擴展 工具箱
回覆: ubuntu 14.04 firefox H.264 及 MSE & H.264 問題
會員一級
註冊日期:
2011/12/7 19:38
所屬群組:
已註冊使用者
等級: 2
HP : 0 / 40
MP : 5 / 1364
EXP: 62
離線
另外 灌了 ubuntu 16.04 會有 network-manager 程式的問題

pppoe 撥接上網無法使用圖形介面

到頭來還是 繼續使用 linux mint cinnamon and linux mint xfce

xfce 還蠻多可以玩的 cinnamon 灌好就可以馬上使用(真方便)

2016/11/26 18:27
應用擴展 工具箱
回覆: ubuntu 14.04 firefox H.264 及 MSE & H.264 問題
會員二級
註冊日期:
2015/3/28 21:29
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 189
MP : 30 / 4524
EXP: 57
離線
dinosaur168 寫到:
另外 灌了 ubuntu 16.04 會有 network-manager 程式的問題

pppoe 撥接上網無法使用圖形介面

到頭來還是 繼續使用 linux mint cinnamon and linux mint xfce

xfce 還蠻多可以玩的 cinnamon 灌好就可以馬上使用(真方便)



16.04正式版之後的network-manager確實是個...美中大不足...

在下我因語言學習上的需要,是winFF的重度使用者,但這軟體在14.04上很牛步,在16.04 beta2上卻飛快起來,所以有機會注意到 network-manager 在beta2和正式版之間的那次更新的那個版本,是「正常運作」的版本...我現在的一個分割區的16.04就是由beta2更新到現在的,但...剛好就在正式版之前有上來這「抱怨-請教」且得到 samwhelp兄的指導,把network-manager設為不更新,所以,在那分割區上的16.04,在使用上...很順暢...只因在這加裝了wine, 所以,有另一不裝wine的作業系統的需要,但...這 network-manager 就...美中大不足了.....

只是抱怨和批評,不會改善什麼,借您這樓說這些,是想報告我在使用上的發現,讓有能力的高手們可以有個著力處!那才是我回您這文的用意,謝謝

2016/11/26 21:12
應用擴展 工具箱
回覆: ubuntu 14.04 firefox H.264 及 MSE & H.264 問題
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 901
MP : 671 / 29267
EXP: 6
離線
Newman 寫到:
dinosaur168 寫到:
另外 灌了 ubuntu 16.04 會有 network-manager 程式的問題

pppoe 撥接上網無法使用圖形介面

到頭來還是 繼續使用 linux mint cinnamon and linux mint xfce

xfce 還蠻多可以玩的 cinnamon 灌好就可以馬上使用(真方便)



16.04正式版之後的network-manager確實是個...美中大不足...

在下我因語言學習上的需要,是winFF的重度使用者,但這軟體在14.04上很牛步,在16.04 beta2上卻飛快起來,所以有機會注意到 network-manager 在beta2和正式版之間的那次更新的那個版本,是「正常運作」的版本...我現在的一個分割區的16.04就是由beta2更新到現在的,但...剛好就在正式版之前有上來這「抱怨-請教」且得到 samwhelp兄的指導,把network-manager設為不更新,所以,在那分割區上的16.04,在使用上...很順暢...只因在這加裝了wine, 所以,有另一不裝wine的作業系統的需要,但...這 network-manager 就...美中大不足了.....

只是抱怨和批評,不會改善什麼,借您這樓說這些,是想報告我在使用上的發現,讓有能力的高手們可以有個著力處!那才是我回您這文的用意,謝謝


呵,指導不敢拉,我其實都抱著教學相長,溫故知新的心情跟各位討論的,
我其實沒在管年紀的,基本都把各位當平輩看待摟
有些議題,我一開始也不會,都是您們有問,我才有那個契機和動力開始去研究探索的。
跟您們討論,在這個過程,我覺得我學到蠻多東西的,藉此感謝各位。



另外我原本的用意有幾個,

一是希望藉由跟各位的討論,
在討論的過程,可以留下一些參考資料,
提供給未來有遇到相同問題的人,可以找到一些線索和指引。

然後若討論過程當中您們學會某些「探索的技巧」或是「解決的方法」了,
未來在您們情況(包含時間和意願)允許下,可以上來幫忙回覆摟。
因為我個人的能力有限,會的有限,時間也有限,所以有些問題我也無法一一回覆,
所以會希望各位多多參與討論和幫忙回覆,感恩先。
至於為什麼這麼做的出發點,我寫在這篇「討論串」了,就不再多說了


關於「PPPOE」這個議題,我也只是之前跟您們討論,才有去使用「PPPOE」這個方式來連線,
因為我平常是透過「AP」來做「PPPOE」連線的,所以就不會遇到各位所說的問題,Orz...
可惜的是關於「PPPOE」這個議題,還是沒能幫得上忙,讓您們可以找到解決方案,歹勢拉。


以下附上之前的討論串連結,提供參考

* 升級15.10後無法連線(已解決)
* 16.04拒絕了dsl的使用者?
* NetworkManager如何設定成不更新不升級?
* [16.10] [PPPoE] DSL連線問題



2016/11/26 23:59
應用擴展 工具箱
回覆: ubuntu 14.04 firefox H.264 及 MSE & H.264 問題
會員一級
註冊日期:
2011/12/7 19:38
所屬群組:
已註冊使用者
等級: 2
HP : 0 / 40
MP : 5 / 1364
EXP: 62
離線
那麼請問 新灌好的 ubuntu 16.04 and 16.041 如何降下來使用以前的 network-manager

thanks a lot

2016/11/29 4:48
應用擴展 工具箱
回覆: ubuntu 14.04 firefox H.264 及 MSE & H.264 問題
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 901
MP : 671 / 29267
EXP: 6
離線
dinosaur168 寫到:
那麼請問 新灌好的 ubuntu 16.04 and 16.041 如何降下來使用以前的 network-manager

thanks a lot


這個屬於「套件操作實務」的議題,

我之前有紀錄一個「索引」,有紀錄一些參考連結和參考案例。

還有最近一篇「討論」,有紀錄一個文件連結

The Debian Administrator's Handbook (中文版)」

未來您可以再回去參考閱讀。

可以先挑「5」「6」「7」那三章來閱讀。


回到您提到的,

「apt-get install」 可以指定安裝套件的版本,
您可以執行「man apt-get
可以在「SYNOPSIS」那看到「install pkg [{=pkg_version_number | /target_release}]... 」
以前在一篇討論「回覆#29」有提到這個用法

然後安裝好後,在依照另一篇的「回覆#5」提到的,
使用「apt-mark hold」將套件「hold」在目前安裝的版本。

有些套件深入的操作議題,目前我也還沒去深究,
我很少做降級的動作,
所以我也不曉得這樣做,會不會有什麼副作用,就有發現再來討論了,
或是對這方面有經驗的大德可以來補充,感恩先。

以下是我剛剛從「Xubuntu 16.04.1 (64位元)」安裝在「VirtualBox」上,來操作這些步驟的紀錄,提供您參考,

================================================================================

執行


$ apt-cache policy network-manager



顯示


network-manager:
已安裝:1.2.0-0ubuntu0.16.04.3
候選: 1.2.2-0ubuntu0.16.04.3
版本列表:
1.2.2-0ubuntu0.16.04.3 500
500 http://tw.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
*** 1.2.0-0ubuntu0.16.04.3 100
100 /var/lib/dpkg/status
1.1.93-0ubuntu4 500
500 http://tw.archive.ubuntu.com/ubuntu xenial/main amd64 Packages



================================================================================

執行下面指令,安裝套件「network-manager」,並指令版本「1.1.93-0ubuntu4」


$ sudo apt-get install network-manager=1.1.93-0ubuntu4


顯示


正在讀取套件清單... 完成
正在重建相依關係
正在讀取狀態資料... 完成
下列套件將會被【降級】:
network-manager
升級 0 個,新安裝 0 個,降級 1 個,移除 0 個,有 147 個未被升級。
需要下載 1,946 kB 的套件檔。
此操作完成之後,會空出 12.3 kB 的磁碟空間。
Do you want to continue? [Y/n]
下載:1 http://tw.archive.ubuntu.com/ubuntu xenial/main amd64 network-manager amd64 1.1.93-0ubuntu4 [1,946 kB]
取得 1,946 kB 用了 0秒 (2,977 kB/s)
dpkg: 警告:將 network-manager 從 1.2.0-0ubuntu0.16.04.3 降級到 1.1.93-0ubuntu4
(讀取資料庫 ... 目前共安裝了 191216 個檔案和目錄。)
準備解開 .../network-manager_1.1.93-0ubuntu4_amd64.deb ...
Unpacking network-manager (1.1.93-0ubuntu4) over (1.2.0-0ubuntu0.16.04.3) ...
Processing triggers for systemd (229-4ubuntu10) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for dbus (1.10.6-1ubuntu3.1) ...
Processing triggers for man-db (2.7.5-1) ...
設定 network-manager (1.1.93-0ubuntu4) ...


================================================================================

執行


$ apt-cache policy network-manager



顯示


network-manager:
已安裝:1.1.93-0ubuntu4
候選: 1.2.2-0ubuntu0.16.04.3
版本列表:
1.2.2-0ubuntu0.16.04.3 500
500 http://tw.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
*** 1.1.93-0ubuntu4 500
500 http://tw.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
100 /var/lib/dpkg/status


================================================================================

執行下面指令,設定「network-manager」設定為「hold」


$ sudo apt-mark hold network-manager



顯示


network-manager 設為保留。


================================================================================

執行下面指令,列出被hold的套件


$ apt-mark showhold


顯示


network-manager



或是執行下面指令,列出被hold的套件


$ dpkg --get-selections | grep hold



顯示


network-manager hold


================================================================================


## Manpage

* $ man apt-cache
* $ man apt-get
* $ man apt-mark

2016/11/29 9:17
應用擴展 工具箱

« 1 (2)

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.