Closed JohnstonJ closed 3 months ago
Thanks for this. I believe the mktemp error you're mentioning was fixed in https://github.com/mipops/dvrescue/commit/1be1d83d7f536689d68a1acf72b22db930d592fe. Could you retry with the latest daily build at https://mediaarea.net/download/snapshots/binary/dvrescue/?
But I suspect the "protocol not found" message is indicating that the ffmpeg build bundled into the dvrescue app for windows is missing the subfile protocol which dvpackager depends on. @JeromeMartinez, could you confirm that the bundled windows ffmpeg build includes the subfile input protocol (it should be listed in ffmpeg -protocols
@dericed The daily snapshots don't seem to include the full Windows build with GUI for some reason.
Since these are text shell scripts, I have instead manually edited the shell scripts from the portable version of 24.07 using the changes at https://github.com/mipops/dvrescue/commit/1be1d83d7f536689d68a1acf72b22db930d592fe
This appears to have fixed the mktemp error. However, the conversion is still failing.
I found a file ffmpeg.args
, which I found had the following contents:
-y -nostdin -hide_banner -probesize 10M -i subfile,,start,0,end,187560000,,:C:\Users\JohnstonJ\AppData\Local\Temp\mpout\digitaltest\pass1.dv_merged.dv -i C:\Users\JohnstonJ\AppData\Local\Temp\dvpackager.c9b2N2.ffmetadata -map_metadata 1 -filter_complex [0:a:0]aresample=async=1:min_hard_comp=0.01[aud1];[0:a:1]aresample=async=1:min_hard_comp=0.01[aud2] -t 52.152100000 -c:a pcm_s16le -c:v:0 copy -f matroska -map 0:v:0 -map [aud1] -map [aud2] -metadata timecode=00:00:00;02 -metadata DATE_RECORDED=2024-07-08 19:55:56 -aspect 4/3 C:\Users\JohnstonJ\AppData\Local\Temp\mpout\digitaltest\pass1.dv_merged_part1.mkv
I have a copy of FFmpeg 7.0.1, so I tried temporarily swapping that in. This time, I got a more verbose error:
[out#0/matroska @ 000001e189c13400] Error opening output 19:55:56: Protocol not found
Error opening output file 19:55:56.
Error opening output files: Protocol not found
Is it trying to create files with :
characters in them on Windows? Those filenames aren't allowed on Windows...
@dericed ah! I think the problem is that this part of the ffmpeg command line was not properly quoted:
-metadata DATE_RECORDED=2024-07-08 19:55:56
If I try running with -metadata "DATE_RECORDED=2024-07-08 19:55:56"
, then it works.
I do see that there is already some quoting at https://github.com/mipops/dvrescue/blob/b8354414cc18966be60def872d36057594e593b6/tools/dvpackager#L1226
so somehow it is being subsequently lost somewhere...
@dericed I think this is the problem: https://github.com/mipops/dvrescue/blob/b8354414cc18966be60def872d36057594e593b6/Source/GUI/dvrescue/dvrescue/windows-tools/scripts/ffmpeg.sh#L32
If I change it to:
ffmpeg "${args[@]}"
then it works, and I get the expected DATE_RECORDED
value in the ffmpeg output:
Output #0, matroska, to 'C:\Users\JohnstonJ\AppData\Local\Temp\mpout\digitaltest\pass1.dv_merged_part1.mkv':
Metadata:
timecode : 00:00:00;02
DATE_RECORDED : 2024-07-08 19:55:56
encoder : Lavf60.3.100
Thanks, I just merged https://github.com/mipops/dvrescue/pull/920, so @JohnstonJ please test the next windows daily build at https://old.mediaarea.net/download/snapshots/binary/dvrescue-gui/ (whatever comes after 0729)
@dericed just tried the packaging feature again. It's still broken, now with a different error. Looks to be the same as https://github.com/mipops/dvrescue/issues/925
I think the line endings in the shell scripts got messed up. Even though this is Windows, I think Cygwin's still going to expect Unix line endings.
@dericed I retested with the snapshot from https://mediaarea.net/download/snapshots/binary/dvrescue-gui/20240731/ .... I'm not encountering any of the errors mentioned in this issue any more, so I'll go ahead and close the issue....
The remaining problem is tracked in #927.
Thanks for the quick fixes!
The file will then fail to convert in the queue. Here are the debug logs. Note the error from mktemp, and subsequent errors where it's unable to write files: