0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gopro動画接続

Last updated at Posted at 2024-02-09

Youtubeへ動画を上げています。

主には、バイク、スノーボード、観光などの動画をGoProで流しで撮影しています。
仲間内などで閲覧する用に、非公開でYouTubeにアップしています。
このとき、GoProではいくつかのファイルに分かれ、SDカードに動画が保存されています。
動画編集は動画編集ですが、ただ単に連結させ、通しでみたいときに不便です。

動画連結スクリプト

ffmpegのインストールはgoogle先生や、諸兄の方々にお任せするとして、
以下のbatファイルを動画ファイルたちがいるディレクトリで実行することで、
一つのmp4にしてくれます。
ffmpegを使い、機械的に連結させますので、無劣化で処理が可能です。

追記ffmpegインストール

私の環境では、「ffmpeg-master-latest-win64-gpl-shared」をダウンロードし、
Cドライブ直下に展開、パスを通します。
バージョンは下記の通りです。

>ffmpeg -version
ffmpeg version N-107137-gfee765c207-20220619 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 11.2.0 (crosstool-NG 1.24.0.533_681aaef)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20220619
libavutil      57. 27.100 / 57. 27.100
libavcodec     59. 33.100 / 59. 33.100
libavformat    59. 25.100 / 59. 25.100
libavdevice    59.  6.100 / 59.  6.100
libavfilter     8. 41.100 /  8. 41.100
libswscale      6.  6.100 /  6.  6.100
libswresample   4.  6.100 /  4.  6.100
libpostproc    56.  5.100 / 56.  5.100

私の環境では上記で動いていますが、「ffmpeg-master-latest-win64-gpl.zip」がいいようです。
私の環境では「ffmpeg-master-latest-win64-gpl」では、動かなかったため、「ffmpeg-master-latest-win64-gpl-shared」を使っています。
下記が参考になります。

公式サイト

公式サイトから、「Windows」→「Windows builds by BtbN」→「ffmpeg-master-latest-win64-gpl.zip」をダウンロードし、中身をCドライブ直下に展開します。

PCのパスを通します。

設定からシステムを開きます。
スクリーンショット 2024-09-26 110631.png
システムの詳細設定をクリックします。
スクリーンショット 2024-09-26 110648.png
環境変数をクリックします。

スクリーンショット 2024-09-26 110706.png
Pathを選択し、編集をクリックします。

スクリーンショット 2024-09-26 110714.png
Cの直下においたffmegのbinのパスを入力します。
画像中では、私のPCの設定「C:\ffmpeg-master-latest-win64-gpl-shared\bin」になっています。

これで準備完了です。

スクリプトの内容

1.ディレクトリ内のMP4ファイル名一覧を「日時順で」取得
 ファイル名順では、撮影された順番でないので、わけがわからなくなります。
2.ファイル名一覧「temptxt」に書き出し
3.「temptxt」の中身をffmpegが認識できる連結リストを「filelist.txt」に出力
4.連結し、「output.mp4」に出力
処理時間がわかるように、処理開始時、処理終了時の日時を出力する。

下記を.batファイルにして、動画フォルダに保存し、ダブルクリック実行する。

@echo off
echo %date% %time%
dir /od *.mp4 /B > temptxt

for /f %%a in (temptxt) do (
 
  rem 出力
  echo file '%%a'>>filelist.txt
 
)

ffmpeg -f concat -i filelist.txt -c copy output.mp4
cd
echo %date% %time%
pause

角度問題

GoProはジャイロセンサーを備えており、親切に動画の向きを変えてくれる。
しかし、PC上で見ると、天地や左右が入れ替わっていたりする。
このため、上記のスクリプトでは、単純連結のため、角度が統一された動画たちにしか使えない。

備忘録:動画のトリミング

ドラレコの動画なんかも同じくファイル区切られるので、応用できる。
ただ、GPS情報など除外して、アップしたいときがある。

画角のトリミング

これでちょうど、下部のGPS情報は画角の外に出すことができる。
上から982ピクセル、幅は全幅(1920)で出力する。

ffmpeg -i hogehoge.mp4 -vf crop=1920:982:0:0: hogeout.mp4

長さのトリミング

15秒の位置から、10秒出力する。

ffmpeg -i hogehoge.mp4 -ss 15 -t 10 -c copy hogeout.mp4

追記デイトナドラレコ用

デイトナのドラレコのデータに対しては、上記で連結できますが、youtubeにアップすることができませんでした。
正しくは、アップロードはできたものの、処理を拒まれるという状態でした。
これは、どうやから、コーデックの問題のようで、変換しながら連結するプログラムです。

REM デイトナのドラレコ用
@echo off
echo %date% %time%
dir /od *.mp4 /B > temptxt

for /f %%a in (temptxt) do (
 
  rem 出力
  echo file '%%a'>>filelist.txt
 
)

ffmpeg -f concat -i filelist.txt -c:v copy -c:a aac output.mp4

cd
echo %date% %time%
pause
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?