最新バージョンのFFMPEGを使用してビデオ録画にタイムギャップを作成するにはどうすればよいですか?

JovanaKostić

私はフォーラムに不慣れなので、この質問を正しく定式化したことを願っています。

FFMPEGの最新バージョンをダウンロードしましたが、これを使用して、タイムギャップを挿入して既存のビデオを変更したいと思います。

これが私がタイムギャップと言う意味です。2秒間続き、FPS = 10で記録された入力ビデオがある場合、そのフレームのタイムスタンプは次のようになります。

0.1s, 0.2s,0.3s,0.4s, .. 1.7s, 1.8s, 1.9.s, 2s

タイムギャップを導入すると、入力ビデオフレームは次のようになります。

0.1s, 0.2s, 0.9s, 1s, 1.1s, 1.7s, 1.8s, 1.9s, 2s

このようなことを達成することは可能ですか?

!!! 編集!!!

ギャンが親切にコメントしてくれたコマンドの結果をここに投稿したいと思います。

コマンドの場合:

ffmpeg -i input.mp4 -vf "setpts='PTS+gte(t,0.3)*(0.6/TB)+gte(t,1.5)*(1.1/TB)',showinfo" -vsync vfr out.mp4

私は得ています:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.20.100
  Duration: 00:00:09.30, start: 0.000000, bitrate: 1185 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 960x540, 1184 kb/s, 10 fps, 10 tbr, 10240 tbn, 20480 tbc (default)
    Metadata:
      handler_name    : VideoHandler
File 'out.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[Parsed_setpts_0 @ 0x55e4f4f85400] [Eval @ 0x7fffadb2ac80] Unknown function in 't,0.3)*(0.6/TB)+gte(t,1.5)*(1.1/TB)'
[Parsed_setpts_0 @ 0x55e4f4f85400] Error while parsing expression 'PTS+gte(t,0.3)*(0.6/TB)+gte(t,1.5)*(1.1/TB)'
[AVFilterGraph @ 0x55e4f4eff400] Error initializing filter 'setpts' with args 'PTS+gte(t,0.3)*(0.6/TB)+gte(t,1.5)*(1.1/TB)'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!

そしてコマンドの場合:

ffmpeg -i input.mp4 -vf select='not(between(t,0.3,0.7)+between(t,1.5.1.8))' -vsync vfr out.mp4

私は得ています:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.20.100
  Duration: 00:00:09.30, start: 0.000000, bitrate: 1185 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 960x540, 1184 kb/s, 10 fps, 10 tbr, 10240 tbn, 20480 tbc (default)
    Metadata:
      handler_name    : VideoHandler
File 'out.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[Parsed_select_0 @ 0x55ce2c4f9d00] [Eval @ 0x7ffc980730c0] Missing ')' or too many args in 'between(t'
[Parsed_select_0 @ 0x55ce2c4f9d00] Error while parsing expression 'not(between(t'
[AVFilterGraph @ 0x55ce2c491a00] Error initializing filter 'select' with args 'not(between(t'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
ギャン

タイムスタンプのシフト

これは、septtsフィルターを使用して可能です。

音声がないと仮定すると、コマンドは次のようになります

ffmpeg -i in -vf setpts='PTS+gte(T\,0.3)*(0.6/TB)+gte(T\,1.5)*(1.1/TB)' -vsync vfr out

これにより、タイムスタンプが0.3秒以上のすべてのフレームが0.6秒前方にオフセットされます。また、タイムスタンプが1.5秒以上のすべてのフレームを1.1秒前方にオフセットします。これらの後者のフレームセットには両方のオフセットが適用されるため、正味のオフセットは0.6 + 1.1 = 1.7秒です。各オフセットグループは、次の2つの部分で構成されています(qualification)*(offset)すべてのオフセットグループは、元のタイムスタンプ(PTSとともに追加されます。

フレームの削除

音声がないと仮定すると、基本的な形式は

ffmpeg -i in -vf select='not(between(t\,0.3\,0.7)+between(t\,1.5\,1.8))' -vsync vfr out

これにより、タイムスタンプが0.3〜0.7秒および1.5〜1.8秒のフレームが削除されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

埋め込まれたメタデータを使用して、ビデオ録画のファイルタイムスタンプを復元するにはどうすればよいですか?

分類Dev

埋め込まれたメタデータを使用して、ビデオ録画のファイルタイムスタンプを復元するにはどうすればよいですか?

分類Dev

自作キャスクを使用して最新バージョンのJavaJDKにアップグレードするにはどうすればよいですか?

分類Dev

キャンバスアニメーションをビデオで録画するにはどうすればよいですか?

分類Dev

カメラプラグインでビデオをフラッターで録画するにはどうすればよいですか?

分類Dev

SwiftでAvfoundationを使用してビデオを録画するにはどうすればよいですか?

分類Dev

デバイスがロックされているときにビデオを録画し続けるにはどうすればよいですか?

分類Dev

-rオプションを使用してffmpegがビデオから抽出するフレームに関連付けられたタイムスタンプを抽出するにはどうすればよいですか?

分類Dev

パイプ(ffmpeg + imagemagick)を使用してビデオサムネイルシートを作成するにはどうすればよいですか?

分類Dev

UIScrollViewズームメソッドを利用して、ズームされたビデオ録画をApple AVCamサンプルプロジェクトに保存するにはどうすればよいですか?

分類Dev

最新バージョンのFirefoxで動作しておらず、ビデオが表示されないため、YouTubeにHTML5プレーヤーを使用しないように強制するにはどうすればよいですか?

分類Dev

CSSを使用して画像キャプションと画像オーバーレイの両方を作成するにはどうすればよいですか?

分類Dev

ffmpegを使用して(ビデオファイル内の)すべてのオーディオストリームを1つのオーディオチャネルにマージするにはどうすればよいですか?

分類Dev

デバイスの画面サイズを使用してプログラムで複数のiOSバージョンとデバイスをサポートするようにiPhoneアプリを作成するにはどうすればよいですか?

分類Dev

ffmpegを使用してスクリーンショットギャラリー/モザイクを出力するにはどうすればよいですか?

分類Dev

パンダを使用して1秒のギャップで1か月の時系列データを生成するにはどうすればよいですか?

分類Dev

apt-getを使用してパッケージの最新バージョンをインストールするにはどうすればよいですか?

分類Dev

apt-getを使用してパッケージの最新バージョンをインストールするにはどうすればよいですか?

分類Dev

Android:カスタムオーディオトラックでビデオを録画するにはどうすればよいですか?

分類Dev

Swiftを使用してプログラムで最新のiOSバージョンを確認するにはどうすればよいですか?

分類Dev

FFMPEGを使用して任意のフォーマットされたタイムスタンプをビデオに追加するにはどうすればよいですか?

分類Dev

ビデオをスピードアップしてタイムラプスを作成するにはどうすればよいですか?

分類Dev

画像テクスチャデータを使用してオフスクリーンバッファを作成するにはどうすればよいですか

分類Dev

VideoSupportFragmentを使用してビデオコントロールを表示するために、TVリーンバックアプリでタッチイベントをキャッチするにはどうすればよいですか?

分類Dev

VideoSupportFragmentを使用してビデオコントロールを表示するために、TVリーンバックアプリでタッチイベントをキャッチするにはどうすればよいですか?

分類Dev

カルタゴを使用して作成されたフレームワークを最新のxcodeバージョンで再コンパイルするにはどうすればよいですか?

分類Dev

Androidのサービスでビデオを録画しながら、ビデオフレームから顔をリアルタイムで検出するにはどうすればよいですか?

分類Dev

djangoを使用してセッションでオブジェクトのインスタンスを作成するにはどうすればよいですか?

分類Dev

オムニバスを使用して以前のgitlabceバージョンをインストールするにはどうすればよいですか?

Related 関連記事

  1. 1

    埋め込まれたメタデータを使用して、ビデオ録画のファイルタイムスタンプを復元するにはどうすればよいですか?

  2. 2

    埋め込まれたメタデータを使用して、ビデオ録画のファイルタイムスタンプを復元するにはどうすればよいですか?

  3. 3

    自作キャスクを使用して最新バージョンのJavaJDKにアップグレードするにはどうすればよいですか?

  4. 4

    キャンバスアニメーションをビデオで録画するにはどうすればよいですか?

  5. 5

    カメラプラグインでビデオをフラッターで録画するにはどうすればよいですか?

  6. 6

    SwiftでAvfoundationを使用してビデオを録画するにはどうすればよいですか?

  7. 7

    デバイスがロックされているときにビデオを録画し続けるにはどうすればよいですか?

  8. 8

    -rオプションを使用してffmpegがビデオから抽出するフレームに関連付けられたタイムスタンプを抽出するにはどうすればよいですか?

  9. 9

    パイプ(ffmpeg + imagemagick)を使用してビデオサムネイルシートを作成するにはどうすればよいですか?

  10. 10

    UIScrollViewズームメソッドを利用して、ズームされたビデオ録画をApple AVCamサンプルプロジェクトに保存するにはどうすればよいですか?

  11. 11

    最新バージョンのFirefoxで動作しておらず、ビデオが表示されないため、YouTubeにHTML5プレーヤーを使用しないように強制するにはどうすればよいですか?

  12. 12

    CSSを使用して画像キャプションと画像オーバーレイの両方を作成するにはどうすればよいですか?

  13. 13

    ffmpegを使用して(ビデオファイル内の)すべてのオーディオストリームを1つのオーディオチャネルにマージするにはどうすればよいですか?

  14. 14

    デバイスの画面サイズを使用してプログラムで複数のiOSバージョンとデバイスをサポートするようにiPhoneアプリを作成するにはどうすればよいですか?

  15. 15

    ffmpegを使用してスクリーンショットギャラリー/モザイクを出力するにはどうすればよいですか?

  16. 16

    パンダを使用して1秒のギャップで1か月の時系列データを生成するにはどうすればよいですか?

  17. 17

    apt-getを使用してパッケージの最新バージョンをインストールするにはどうすればよいですか?

  18. 18

    apt-getを使用してパッケージの最新バージョンをインストールするにはどうすればよいですか?

  19. 19

    Android:カスタムオーディオトラックでビデオを録画するにはどうすればよいですか?

  20. 20

    Swiftを使用してプログラムで最新のiOSバージョンを確認するにはどうすればよいですか?

  21. 21

    FFMPEGを使用して任意のフォーマットされたタイムスタンプをビデオに追加するにはどうすればよいですか?

  22. 22

    ビデオをスピードアップしてタイムラプスを作成するにはどうすればよいですか?

  23. 23

    画像テクスチャデータを使用してオフスクリーンバッファを作成するにはどうすればよいですか

  24. 24

    VideoSupportFragmentを使用してビデオコントロールを表示するために、TVリーンバックアプリでタッチイベントをキャッチするにはどうすればよいですか?

  25. 25

    VideoSupportFragmentを使用してビデオコントロールを表示するために、TVリーンバックアプリでタッチイベントをキャッチするにはどうすればよいですか?

  26. 26

    カルタゴを使用して作成されたフレームワークを最新のxcodeバージョンで再コンパイルするにはどうすればよいですか?

  27. 27

    Androidのサービスでビデオを録画しながら、ビデオフレームから顔をリアルタイムで検出するにはどうすればよいですか?

  28. 28

    djangoを使用してセッションでオブジェクトのインスタンスを作成するにはどうすればよいですか?

  29. 29

    オムニバスを使用して以前のgitlabceバージョンをインストールするにはどうすればよいですか?

ホットタグ

アーカイブ