hardware accelarated video encoding/decoding
{【失敗】2023-02にFFmpegでAMD製品の剛品高進を利用する作業記録 K#D657/77AE}
B̅https://github.com/GPUOpen-LibrariesAndSDKs/AMF/releases/latest
/usr/local/include/AMF/
https://www.amd.com/en/support/linux-drivers
apt install ./...
amdgpu-install -y --accept-eula
git ... ffmpeg...
./configure && make -j$(nproc) && sudo make install
{剛品高進を利用したffmpegによる画面録画 K#D657/A10A}
B̅なぜかpulseが指定できない(指定するとffmpegくんがh264_nvenc符号器のことを忘れてしまう)
→解決
参考になった: https://qiita.com/toru2220/items/148098cd814cee22d432
まさか,音声の入力先の指定後に動画の符号器を指定しなくてはならないとは……
あとこれ音ずれする。たぶん,1時間あたり0.5sくらいだが,それでも気になる。
人の口元が鮮明に写っていて,かつ会話の内容に集中するような映像だと(例えば会議),少々の音ずれでもすごく目立つ。
(2021-06-18時点で未解決)
-codec:a ac3 -af aresample=async=1
→-codec:a pcm_s16le
(生来)にしてみた。
→うむ,これだと音ずれはかなりマシ……になったかな? ちょっとしてるような気もするが……。
あと,ac3符号器のときはmp4変換時に「Non-monotonous DTS in output stream...」という通報があったのが,pcm_s16leだとない。
…と思ってたけど,↑この問題はまた別?ac3→aac変換では「Queue input is backward in time...」が問題の諸元?
ffmpeg \
-hwaccel cuvid -hwaccel_output_format cuda -threads 16 \
-f x11grab \
-analyzeduration 10M -probesize 10G -thread_queue_size 65536 \
-video_size 1920x1080 -framerate 60 -draw_mouse 0 \
-i :0.0 \
-f pulse \
-analyzeduration 10M -probesize 10G -thread_queue_size 65536 \
-ac 2 \
-i 0 \
-codec:v h264_nvenc -preset p1 -tune hq \
-codec:a pcm_s16le \
/tmp/out.mkv
{Nvidia製GPUの剛品高進下映像復号 K#D657/1267}
B̅NVIDIA GPU's Hardware-Accelerated Video Decoding
https://developer.nvidia.com/nvidia-video-codec-sdk#NVDECFeatures
{Nvidia製GPUの剛品高進下映像符号化 K#D657/C53B}
B̅NVIDIA GPU's Hardware-Accelerated Video Encoding
https://developer.nvidia.com/nvidia-video-codec-sdk#NVENCFeatures
{ VLC for Fire K#D657/19C9}
B̅動画の再生にはこれを統合的な応譜として使う。
当然ながら,剛品符号化にも対応している。
また,UIも接触を前提とした直感的な操作でわかりやすい(YouTubeっぽい)。
https://www.amazon.co.jp/dp/B00U65KQMQ
{むしゃくしゃして買った,後悔はしていない。 K#D657/42B2}
B̅Amazonの割引祭の雰囲気に飲まれて(とはいっても実際にかなり安くなっており,10000円で買えたのだが)Fire HD 10第11世代を買ってしまった。
いくつか判明したこと(主に負の方向)
- H.264の動画を剛品符号化できるとあるが,「剛品符号化できるとは言ったが快適に見れるとは言っていない」状態。走査線?かなにかが頻繁に入るし,画質を最低にしてもかなり見苦しい描画になる。というか,もしかするとOfficeやOneDriveの上で再生しているのが悪いのか? たとえばFirefox on LinuxとかだとWeb閲覧機上で再生したものにもGPUによる支援が効く(はず)だが,Fire端末についてはそうではないのかも(だから柔品処理となり,結果として見苦しくなった)。なお,YouTubeは快適に視聴できた。
→ためしに,OneDrive応譜の「オフラインで利用可能にする」という操作をし,手元に譜類がある状態にすると,問題なく再生できた。
- 柔品鍵盤の質が低い。というか,iPadOSのような浮動鍵盤にできない。基本的にこの大きさ(差渡し10インチ強)の端末は画面を横向きにして使うことが多いと思うのだが(動画の縦横比もそうだし),その状態で浮動していない鍵盤を出現させると,画面の下1/3から1/2を鍵盤が占めてしまい,操作性が下がる。
参考: 浮動鍵盤について
→Re: 浮動鍵盤について
すいません,できました。私が設定項目(というか鍵盤脇にある釦)を見逃していただけでした。
- Android 9.0を基盤としていることが原因かどうか分からないが,ともかくOS全体で暗色調に設定できない。だから個々の応譜に委ねるしかない。Officeなんかは個別では暗色調にできないので,めちゃくちゃ眩しい……し,電池も食う。
動画再生と鍵盤の問題はとりあえず解決した。
{FFmpeg on WSLがGPU支援を受けられるようにする K#D657/DF76}
B̅{Raspberry PiでH.264符号化 K#D657/CA65}
B̅Raspberry PiはH.264を剛品符号化できるらしい。知らなかった。
手元にRaspberry Pi 3 Model B+があるので試したい。
接触元: https://mstdn.maud.io/@orumin/105371602375830226
参考: https://qiita.com/ikasamah/items/75d19b8ec08c5230496e