Ffmpegのセグメントを使用して、1つの入力ファイルを4つの別々の出力ファイルに分割しようとしています。個別の出力ファイルにストリームコピーしています(入力はDNxHDコーデックを使用しているため、キーフレームの問題はありません)。
コマンド:
ffmpeg -i input.mov -c copy -r 24 -reset_timestamps 1 -map 0:0 -f segment -increment_tc 1 -segment_start_number 1 -segment_frames 360,720,1080 output_%4d.mov
これまでのところ、タイムコードを除いて、コマンドは正常に機能しています。出力ファイルにデータ/タイムコードストリームがなく、処理中に各セグメントでこのエラーが表示されます...
有効なタイムコードフレームレートを指定する必要があります。最小値は1です
フル出力:
ffmpeg -i input.mov -c copy -r 24 -reset_timestamps 1 -map 0:0 -f segment -increment_tc 1 -segment_start_number 1 -segment_frames 360,720,1080 output_%4d.mov
ffmpeg version N-94014-g80e68ce116-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 10.0.1 (clang-1001.0.46.4)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
libavutil 56. 28.100 / 56. 28.100
libavcodec 58. 52.102 / 58. 52.102
libavformat 58. 27.103 / 58. 27.103
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 55.100 / 7. 55.100
libswscale 5. 4.101 / 5. 4.101
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2019-06-14T13:48:53.000000Z
timecode : 01:00:00:00
Duration: 00:01:00.00, start: 0.000000, bitrate: 116392 kb/s
Stream #0:0(eng): Video: dnxhd (DNXHD) (AVdn / 0x6E645641), yuv422p(tv, bt709), 1920x1080, 116391 kb/s, SAR 1:1 DAR 16:9, 24 fps, 24 tbr, 24k tbn, 24k tbc (default)
Metadata:
creation_time : 2019-06-14T13:48:53.000000Z
handler_name : Apple Video Media Handler
encoder : Avid DNxHD Codec
Stream #0:1(eng): Data: none (tmcd / 0x64636D74) (default)
Metadata:
creation_time : 2019-06-14T13:49:09.000000Z
handler_name : Time Code Media Handler
timecode : 01:00:00:00
[segment @ 0x7fa448001600] Opening 'output_0001.mov' for writing
[mov @ 0x7fa448003400] Valid timecode frame rate must be specified. Minimum value is 1
Output #0, segment, to 'output_%4d.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
timecode : 01:00:00:00
encoder : Lavf58.27.103
Stream #0:0(eng): Video: dnxhd (DNXHD) (AVdn / 0x6E645641), yuv422p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 116391 kb/s, 24 fps, 24 tbr, 12288 tbn, 24 tbc (default)
Metadata:
creation_time : 2019-06-14T13:48:53.000000Z
handler_name : Apple Video Media Handler
encoder : Avid DNxHD Codec
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[segment @ 0x7fa448001600] Opening 'output_0002.mov' for writing
[mov @ 0x7fa449000000] Valid timecode frame rate must be specified. Minimum value is 1
[segment @ 0x7fa448001600] Opening 'output_0003.mov' for writing
[mov @ 0x7fa449000000] Valid timecode frame rate must be specified. Minimum value is 1
[segment @ 0x7fa448001600] Opening 'output_0004.mov' for writing speed=73.7x
[mov @ 0x7fa449800c00] Valid timecode frame rate must be specified. Minimum value is 1
frame= 1440 fps=0.0 q=-1.0 Lsize=N/A time=00:00:59.95 bitrate=N/A speed=72.7x
video:852480kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
フルデバッグをオンにしてコマンドを見ると、エラーは次のようになります。
[mov @ 0x7f9d4a006800] timecode: tbc=1/0 invalid, fallback on 0/0
[mov @ 0x7f9d4a006800] Valid timecode frame rate must be specified. Minimum value is 1
タイムコードのフレームレートをドローテキストフィルターの外部のオプションとして設定する方法を私は知りませんが、これは明らかに関係ありません。 元のソースコード でこのエラーを見ると、この バグレポート で参照されているように、ドローテキストフィルター内の問題を処理するように特別に設計されているようです。
まず、コマンドは正しくフォーマットされていますか?次に、入力タイムコードトラックを保持し、「-increment_tc 1」フラグを使用して、各セグメントに正しく設定された状態を維持する方法はありますか?ところで、新しいトラックを作成できるかどうかを確認するために、「-timecode 00:00:00:00」を追加しようとしましたが、何もしませんでした。
ありがとう
edit ...これは、「-map0:0」の代わりに「-map0」を使用した場合のエラーを示すログです。
ffmpeg -i input.mov -c copy -r 24 -reset_timestamps 1 -map 0 -f segment -increment_tc 1 -segment_start_number 1 -segment_frames 360,720,1080 output_%4d.mov
ffmpeg version N-94014-g80e68ce116-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 10.0.1 (clang-1001.0.46.4)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
libavutil 56. 28.100 / 56. 28.100
libavcodec 58. 52.102 / 58. 52.102
libavformat 58. 27.103 / 58. 27.103
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 55.100 / 7. 55.100
libswscale 5. 4.101 / 5. 4.101
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2019-06-14T13:48:53.000000Z
timecode : 01:00:00:00
Duration: 00:01:00.00, start: 0.000000, bitrate: 116392 kb/s
Stream #0:0(eng): Video: dnxhd (DNXHD) (AVdn / 0x6E645641), yuv422p(tv, bt709), 1920x1080, 116391 kb/s, SAR 1:1 DAR 16:9, 24 fps, 24 tbr, 24k tbn, 24k tbc (default)
Metadata:
creation_time : 2019-06-14T13:48:53.000000Z
handler_name : Apple Video Media Handler
encoder : Avid DNxHD Codec
Stream #0:1(eng): Data: none (tmcd / 0x64636D74) (default)
Metadata:
creation_time : 2019-06-14T13:49:09.000000Z
handler_name : Time Code Media Handler
timecode : 01:00:00:00
[segment @ 0x7fe5d5807400] Opening 'output_0001.mov' for writing
[mov @ 0x7fe5d5802a00] Valid timecode frame rate must be specified. Minimum value is 1
Output #0, segment, to 'output_%4d.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
timecode : 01:00:00:00
encoder : Lavf58.27.103
Stream #0:0(eng): Video: dnxhd (DNXHD) (AVdn / 0x6E645641), yuv422p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 116391 kb/s, 24 fps, 24 tbr, 12288 tbn, 24 tbc (default)
Metadata:
creation_time : 2019-06-14T13:48:53.000000Z
handler_name : Apple Video Media Handler
encoder : Avid DNxHD Codec
Stream #0:1(eng): Data: none (tmcd / 0x64636D74) (default)
Metadata:
creation_time : 2019-06-14T13:49:09.000000Z
handler_name : Time Code Media Handler
timecode : 01:00:00:00
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
Floating point exception: 8
この投稿を回答で完了するために、この問題はffmpegのいくつかのバグが原因で発生しましたが、Gyanによって修正されました。