Opened 20 months ago
Last modified 18 months ago
#11338 new defect
Error transcoding from dv source - fps 60000 is too large
| Reported by: | Paul Londino | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | ffmpeg |
| Version: | 6.1.1 | Keywords: | quicktime dv 60000 |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Summary of the bug:
I am trying to rewrap a DV in a QuickTime container but getting an error "fps 60000 is too large" (preceded by a log message "Using non-standard frame rate 60000/1"). The files appear to be 30000/1001 in a few tools I checked (QuickTime, VLC, MediaInfo, AtomBox). The files transcode without issue in FFMPEG 6.0.1 but not in 6.1. The issue persist in the latest build I tested (N-118022-gca889b1328-tessus).
How to reproduce:
% ffmpeg -i input.dv -map 0 -c copy output.mov
ffmpeg version N-118022-gca889b1328-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2024 the FFmpeg developers
built with Apple clang version 16.0.0 (clang-1600.0.26.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-libharfbuzz --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-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
libavutil 59. 49.100 / 59. 49.100
libavcodec 61. 26.100 / 61. 26.100
libavformat 61. 9.100 / 61. 9.100
libavdevice 61. 4.100 / 61. 4.100
libavfilter 10. 6.101 / 10. 6.101
libswscale 8. 12.100 / 8. 12.100
libswresample 5. 4.100 / 5. 4.100
libpostproc 58. 4.100 / 58. 4.100
[dv @ 0x7fb360904f80] Estimating duration from bitrate, this may be inaccurate
Input #0, dv, from 'input.dv':
Metadata:
timecode : 00:02:14;12
Duration: 00:00:49.52, start: 0.000000, bitrate: 28771 kb/s
Stream #0:0: Video: dvvideo, yuv411p, 720x480 [SAR 8:9 DAR 4:3], 28771 kb/s, 60k fps, 29.97 tbr, 60k tbn
Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
[mov @ 0x7fb360906b00] Using non-standard frame rate 60000/1
Last message repeated 1 times
Output #0, mov, to 'output.mov':
Metadata:
timecode : 00:02:14;12
encoder : Lavf61.9.100
Stream #0:0: Video: dvvideo (dvcp / 0x70637664), yuv411p, 720x480 [SAR 8:9 DAR 4:3], q=2-31, 28771 kb/s, 60k fps, 29.97 tbr, 60k tbn
Stream #0:1: Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s
Press [q] to stop, [?] for help
fps 60000 is too large
[out#0/mov @ 0x7fb360905c40] Error writing trailer: Invalid argument
[out#0/mov @ 0x7fb360905c40] video:173906KiB audio:9284KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.013578%
frame= 1484 fps=0.0 q=-1.0 Lsize= 183215KiB time=00:00:49.51 bitrate=30311.3kbits/s speed= 947x
Conversion failed!
Using ffmpeg 6.0.1:
ffmpeg-6.0.1 -i input.dv -map 0 -c copy output.mov
ffmpeg version 6.0.1-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 11.0.0 (clang-1100.0.33.17)
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-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
[dv @ 0x7faa2a805380] Estimating duration from bitrate, this may be inaccurate
Input #0, dv, from 'input.dv':
Metadata:
timecode : 00:02:14;12
Duration: 00:00:49.52, start: 0.000000, bitrate: 28771 kb/s
Stream #0:0: Video: dvvideo, yuv411p, 720x480 [SAR 8:9 DAR 4:3], 25000 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn
Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Output #0, mov, to 'output.mov':
Metadata:
timecode : 00:02:14;12
encoder : Lavf60.3.100
Stream #0:0: Video: dvvideo (dvcp / 0x70637664), yuv411p, 720x480 [SAR 8:9 DAR 4:3], q=2-31, 25000 kb/s, 29.97 fps, 29.97 tbr, 30k tbn
Stream #0:1: Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 1484 fps=0.0 q=-1.0 Lsize= 183216kB time=00:00:49.48 bitrate=30331.8kbits/s speed= 806x
video:173906kB audio:9284kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.013663%
The sources are dv files I used FFMPEG to capture via Firewire. I also used FFMPEG to create dv files from other sources, but those have the same issue in modern (>6.0.1) versions.
Full output of input file:
ffmpeg -v 9 -loglevel 99 -i input.dv
ffmpeg version N-118022-gca889b1328-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2024 the FFmpeg developers
built with Apple clang version 16.0.0 (clang-1600.0.26.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-libharfbuzz --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-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
libavutil 59. 49.100 / 59. 49.100
libavcodec 61. 26.100 / 61. 26.100
libavformat 61. 9.100 / 61. 9.100
libavdevice 61. 4.100 / 61. 4.100
libavfilter 10. 6.101 / 10. 6.101
libswscale 8. 12.100 / 8. 12.100
libswresample 5. 4.100 / 5. 4.100
libpostproc 58. 4.100 / 58. 4.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-i' ... matched as input url with argument 'input.dv'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url input.dv.
Successfully parsed a group of options.
Opening an input file: input.dv.
[AVFormatContext @ 0x7f90808057c0] Opening 'input.dv' for reading
[file @ 0x7f9080805c00] Setting default whitelist 'file,crypto,data'
Probing dv score:75 size:2048
Probing mp3 score:1 size:2048
[dv @ 0x7f90808057c0] Format dv probed with size=2048 and score=75
[dv @ 0x7f90808057c0] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:1
[dv @ 0x7f90808057c0] Probe buffer size limit of 5000000 bytes reached
[dv @ 0x7f90808057c0] Estimating duration from bitrate, this may be inaccurate
[dv @ 0x7f90808057c0] stream 0: start_time: 0 duration: 49.516133
[dv @ 0x7f90808057c0] stream 1: start_time: 0 duration: 49.516133
[dv @ 0x7f90808057c0] format: start_time: 0 duration: 49.516133 (estimate from bit rate) bitrate=28771 kb/s
[dv @ 0x7f90808057c0] After avformat_find_stream_info() pos: 4800000 bytes read:4800000 seeks:0 frames:79
Input #0, dv, from 'input.dv':
Metadata:
timecode : 00:02:14;12
Duration: 00:00:49.52, start: 0.000000, bitrate: 28771 kb/s
Stream #0:0, 40, 1/60000: Video: dvvideo, 1 reference frame, yuv411p(topleft), 720x480 [SAR 8:9 DAR 4:3], 0/1, 28771 kb/s, 60k fps, 29.97 tbr, 60k tbn
Stream #0:1, 39, 1/14112000: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Successfully opened the file.
At least one output file must be specified
[AVIOContext @ 0x7f9080805d80] Statistics: 4800000 bytes read, 0 seeks
Change History (2)
follow-up: 2 comment:1 by , 19 months ago
comment:2 by , 18 months ago
Replying to dave rice:
Hi Paul, did you find a workaround for this?
The main workaround is just to use an older version of FFMPEG for wrapping DV in QuickTime. I did figure out that Final Cut can import these DV files, and if you export them using Original settings and explicitly choose DV as the output codec, it exports in a QuickTime wrapper without re-encoding the DV video (and these files can be transcoded by modern FFMPEG). This was a good option for me since I need to cut/trim the DV captures anyway.



Hi Paul, did you find a workaround for this?