タグ

2021年6月16日のブックマーク (16件)

  • ffmpeg concatでファイルリストを作成せずに動画を結合する - mattintosh note

    ffmpeg によるビデオファイルの結合方法は公式に載っているのだけどたまにしかやらなくて忘れるのでメモっておく。 ffmpeg この方法で検索するとだいたいファイルリスト作って読み込ませる方法を使っているようなのだけどファイルリストを作るのが面倒なのでできればパイプで済ませたいところ。ポイントは下記の通り。 ファイルリスト内のファイルはクォートされてなくてもよい ファイルリスト内のファイルパスがフルパスまたは相対パスでない場合は -i FILE で指定したファイルのプレフィックスが使用される ファイルリストの標準入力に - は使用できない ファイルリスト内のファイルはクォートされてなくてもよいがファイル名による ファイル名にスペースが入っている場合はシングルクォートで括る必要がある。ファイル名自体にシングルクォートを使われているとパースがおかしくなり、この場合はダブルクォオートで括ったと

    ffmpeg concatでファイルリストを作成せずに動画を結合する - mattintosh note
    otori334
    otori334 2021/06/16
    “ファイル名自体にシングルクォートを使われているとパースがおかしくなり、この場合はダブルクォオートで括ったとしても入力が -i /dev/stdin の場合は変な結合をされてしまう”
  • ffmpegで動画を無劣化で抽出する方法(キーフレームごとに動画を切り取る方法) : Jonouchi Kouyo's Blog

    ffmpegを使って動画を切り取る(trim:トリムする)ときに、キーフレーム(keyframe:Iフレーム)を使う方法をメモしておく。 実行環境 MacOSX 10.8.5 ffmpeg ver 2.4.2 bash ver 3.2.53 今回使用した動画の形式 コンテナ mp4 動画コーデック h264 音声コーデック aac 何故キーフレームを選択するかというと、キーフレーム単位で動画を切り取ると動画の再エンコードが必要ないので、元の画像・音声を劣化せずに切り取れるからである(詳細は"動画 GOP"で検索)。またエンコードが無いため処理が一瞬で終わる。 逆にキーフレームを指定しない場合は再エンコードが発生して処理に時間がかかる。キーフレーム以外の任意の位置から切り取りを開始したい場合は、必ず後者の処理を行うことになる。 1.切り取りに使うffmpegのコマンド ffmpeg -ss

    ffmpegで動画を無劣化で抽出する方法(キーフレームごとに動画を切り取る方法) : Jonouchi Kouyo's Blog
  • イケサイ WEBデザイナーのポータルサイト

    キーフレームとは、動画の中のデータにおいて、「区切りとなるデータ」のことです。 動画の原理として、静止画を毎秒毎に何枚にもわたって差し替えることによりアニメーションのように見える、というものがありますが、データ的に、それを忠実に再現していては、静止画データ何百枚分のデータをためておくこととなり、データ容量が大きくなります。 ですが動画として、可逆圧縮、非可逆圧縮などの動画を圧縮する方法を使えば、そのデータ容量を削減することが可能です。 その時に出てくるのがキーフレームです。 多くの圧縮方法の原理として、キーフレームで動画を区切り、そのフレーム間の動画データに対して圧縮アルゴリズムをあてるというものがあります。 こうしておくと、あとで編集する際に、キーフレーム単位で編集すれば、再圧縮を行う手間などが大きく省けるということがありますし、様々な長さの動画を圧縮することができます。 イケサイ新着登

    イケサイ WEBデザイナーのポータルサイト
  • 『よく使うffmpegのコマンドメモ』

    大前提→ffmpegはビルドスクリプトでFDK-AAC込みにしたものを使ってます。これは実行ファイルとして配布されているものには、ライセンスの都合で入っていません -analyzeduration 30M -probesize 30M エンコードの前処理として行われる先読みの秒数指定。デフォルトでは5M(5秒)。30Mは30秒。 映像か音声のどちらかが5秒以上遅延した動画ファイルの場合、このオプションで秒数を増やさないと、映像がない動画ファイル・音声がない動画ファイルに仕上がる場合がある。 -pix_fmt yuv420p ピクセルフォーマット指定。「 yuv420p」にしておかないとFlash Player上で上手く再生できない。 -ss 秒数 エンコードのスタート位置の指定。動画の切り出しに使う。秒数での指定の他、hh:mm:ss[.xxx]という形式での指定も可能。動画ファイルの入力

    『よく使うffmpegのコマンドメモ』
  • Electric Blue Industries Ltd.

    Deep LearningのCVPR(Computer Vision and Pattern Recognition)領域ではビデオや画像を扱うことがほとんどです。その際に頻出するffmpegの使い方です。 ffmpeg(https://www.ffmpeg.org/)は特にUnix環境で動画や音声の処理を行う上で基的な機能を網羅したアプリケーションで、Unix環境ではデファクト・スタンダードです。Pythonパッケージで動画を扱う「ffmpeg-python」や音声を扱う「pydub」などのパッケージライブラリが存在しますが、それらの多くは単なるffmpegのラッパーで、稼働にはffmpeg自体の存在が必須条件となっています。 1. 動画からのフレーム切り出しの例 通常はコマンドラインで使用しますが、Python使用者はJupyter Notebookからffmpegを使う必要に迫られ

    Electric Blue Industries Ltd.
  • FFmpegで動画編集をするガイド - moriyoshiの日記

    こんにちは。年末になり、ますますコマンドラインで動画編集をする機会が増えてきているかと思いますが、皆様いかがお過ごしでしょうか。普段触れていないとついつい忘れてしまうffmpegのオプション群。そんなあなたのためのチートシートです。 基礎編 トランスコーディング ffmpeg -i input.mp4 -c:v libx264 -preset medium -c:a libfdk_aac output.mp4 または ffmpeg -i input.mp4 -vcodec libx264 -preset medium -acodec libfdk_aac output.mp4 解説 -c:v オプションは映像コーデックを、-c:a は音声コーデックを指定する。古くはそれぞれ -vcodec -acodec というオプションであった。両者は等価である。 -preset は libx264 の

    FFmpegで動画編集をするガイド - moriyoshiの日記
  • AAC - Wikipedia

    Advanced Audio Coding(略称: AAC、先進的音響符号化)は、不可逆のデジタル音声圧縮を行う音声符号化規格のひとつである。1997年にISO/IEC JTC 1のMoving Picture Experts Group (MPEG) において規格化された。MP3の後継フォーマットとして策定され、一般的にAACは同程度のビットレートであればMP3より高い音声品質を実現している。 AACはISOとIECにより、MPEG-2およびMPEG-4仕様の一部として標準化された。MPEG-4 Audio内のHE-AACとして知られるAACの一部は、DAB+やDigital Radio Mondiale、モバイルテレビジョン規格のDVB-やATSC-M/Hのようなデジタル無線規格においても採用されている。 AACは一つのストリームに、48の全帯域幅(最大96kHz)音声チャンネルを持た

  • tempfile — Generate temporary files and directories

    tempfile — Generate temporary files and directories¶ Source code: Lib/tempfile.py This module creates temporary files and directories. It works on all supported platforms. TemporaryFile, NamedTemporaryFile, TemporaryDirectory, and SpooledTemporaryFile are high-level interfaces which provide automatic cleanup and can be used as context managers. mkstemp() and mkdtemp() are lower-level functions whi

    tempfile — Generate temporary files and directories
  • os.path — Common pathname manipulations

    os.path — Common pathname manipulations¶ Source code: Lib/genericpath.py, Lib/posixpath.py (for POSIX) and Lib/ntpath.py (for Windows). This module implements some useful functions on pathnames. To read or write files see open(), and for accessing the filesystem see the os module. The path parameters can be passed as strings, or bytes, or any object implementing the os.PathLike protocol. Unlike a

    os.path — Common pathname manipulations
  • NumPy配列ndarrayをイミュータブル(書き換え禁止)に設定 | note.nkmk.me

    NumPy配列numpy.ndarrayは基的にミュータブルで要素を指定して値を更新可能。numpy.ndarrayの設定を変更することでイミュータブル(書き換え禁止, read-only)にできる。 誤って値を更新してしまうのを防ぐのに便利。 ここでは以下の内容について説明する。 ndarrayのメモリレイアウト情報を格納しているflags WRITEABLE属性で配列をイミュータブル(書き換え禁止)に設定 WRITEABLE属性を変更できない場合もあり 最後に説明するように、元の配列が書き換え可能である場合は、そのビューを書き換え禁止にしても元の配列から要素の値が更新できるので注意。 ndarrayのメモリレイアウト情報を格納しているflags numpy.ndarrayのメモリレイアウトの情報はflagsに格納されている。 numpy.ndarray.flags — NumPy v

    NumPy配列ndarrayをイミュータブル(書き換え禁止)に設定 | note.nkmk.me
  • (61) numpy配列を書き換え禁止にする – Pythonやってみる!

    8,631 views この記事は最終更新から 1652日 が経過しています。 5行3列の0行列aを作成し、[1,2]の要素の値を3に書き換える。 >>> import numpy as np >>> a = np.zeros((5,3)) >>> a array([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]) >>> a[1,2]=3 >>> a array([[ 0., 0., 0.], [ 0., 0., 3.], [ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]) この配列aに read only 属性を付与する。 >>> a.flags.writeable = False >>> a.flags C_CONTIGUOUS : True

  • wave — Read and write WAV files

    wave — Read and write WAV files¶ Source code: Lib/wave.py The wave module provides a convenient interface to the Waveform Audio “WAVE” (or “WAV”) file format. Only uncompressed PCM encoded wave files are supported. Changed in version 3.12: Support for WAVE_FORMAT_EXTENSIBLE headers was added, provided that the extended format is KSDATAFORMAT_SUBTYPE_PCM. The wave module defines the following funct

    wave — Read and write WAV files
  • 【python】numpy配列の結合方法まとめ - 静かなる名辞

  • NumPy配列ndarrayに次元を追加するnp.newaxis, np.expand_dims() | note.nkmk.me

    NumPy配列ndarrayに新たな次元を追加する(次元を増やす)には、np.newaxis, np.expand_dims()およびnp.reshape()(またはndarrayのreshape()メソッド)を使う方法がある。 Indexing on ndarrays - Dimensional indexing tools — NumPy v1.26 Manual Constants - numpy.newaxis — NumPy v1.26 Manual numpy.expand_dims — NumPy v1.26 Manual np.reshape()あるいはndarrayのreshape()メソッドは次元を追加するだけでなく任意の形状shapeへの変換が可能。記事の最後でも触れるが、詳細は以下の記事を参照。 関連記事: NumPy配列ndarrayの形状を変換するreshap

    NumPy配列ndarrayに次元を追加するnp.newaxis, np.expand_dims() | note.nkmk.me
  • FFmpegで動画の一部を無音にするときは音声を削除せずに無音データで埋めないとダメ | Hori Blog

    FFmpeg に限らずですが、動画の一部を無音にするとき”音声データの削除”と”無音データに置き換え”の区別がついていないと爆死する。 作業手順 動画を切り分ける(音声を抜く部分、その前後、の 3 つに) 音声を無音に変換する 1 で分けた動画を結合する 音を消すだけじゃダメ 無音音声の動画と音声データがない動画は別のものです。 音声データがない動画を音声データのある動画と結合した場合、図のように部分的に音声データが欠落している動画となるのですが、 プレーヤーが上手いこと補ったりスルーしてくれるわけでもなく、再生時に不具合となります。 なので、代わりの音声データ(無音)をきちんと入れてあげましょう、という話。 以下、正しい作業手順を貼っておきます 具体的な手順 1. 動画を切り分ける FFmpeg で秒数を指定して動画を切り出すワンライナー 上記は切り出すコマンドなので、3 回叩きます。切

    FFmpegで動画の一部を無音にするときは音声を削除せずに無音データで埋めないとダメ | Hori Blog
    otori334
    otori334 2021/06/16
    “-c copy オプションは速いですが時間がズレるので、つけずにトランスコードしたほうが良いかと思います”
  • 音声の先頭に無音を挿入する adelay | ニコラボ

    音声のチャンネル毎にストリームの先頭に無音を挿入するadelayフィルタの使い方。チャンネル毎に時間が異なれば長い方に合わして短い方の末尾に無音を挿入する。映像は何もしないので無音を挿入すると映像と音声の時間が異なるファイルになる。 音声の末尾に無音を挿入する apad 映像の前後にフレームを挿入する tpad 基コマンド 左のチャンネルは無音を挿入せずに、右のチャンネルに1000サンプル無音を挿入する。 ffmpeg -i audio -af "adelay=0|1000S" output 左右のチャンネルに10秒ずつ無音を挿入する。 ffmpeg -i audio -af "adelay=10s|10s" output 左右のチャンネルに0.5秒ずつ無音を挿入する。 ffmpeg -i audio -af "adelay=500:all=1" output すべてのチャンネルに64サ

    音声の先頭に無音を挿入する adelay | ニコラボ