You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello! I used LosslessCut to remove some segments out of a video. I needed frame-level accuracy, so I tried Smart Cut.
However, the resulting video appears corrupt across the short "encoded" segments - I get just a green video (audio is fine).
I looked into it more deeply. Using ffprobe -show_streams, I determined that the encoded and copy files differ in the has_b_frames: the copies have has_b_frames=1, and the encoded ones have has_b_frames=2. I am using the ffmpeg built into LosslessCut 3.67.2 (macOS x64).
I manually reran the commands to generate the encoded segments with -bf 1 to set the has_b_frames parameter for the encoder, then concatenated them using -i concat:... (I am using mpegts intermediaries for simplicity). Surprisingly, this works great!
So, I would suggest that in addition to the bit rate and codec, that the has_b_frames/bf encoder parameter be copied from the original input. It seems like many videos in the wild use has_b_frames=1, but the built-in encoder with LosslessCut seems to default to 2.
Thank you for the nice project! I successfully completed my editing task using this tool and the small manual fix, so I hope this idea is useful to others.
P.S.: I would sincerely wish for the app.log to produce copy-paste-able commands. In particular, -f concat -i- is a bit unfortunate because I have to guess what the input is. Even something like echo ... >> concat.tmp then -f concat -i concat.tmp would be helpful. That way I can manually rerun the entire sequence of commands if some manual fix is required.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hello! I used LosslessCut to remove some segments out of a video. I needed frame-level accuracy, so I tried Smart Cut.
However, the resulting video appears corrupt across the short "encoded" segments - I get just a green video (audio is fine).
I looked into it more deeply. Using
ffprobe -show_streams, I determined that the encoded and copy files differ in thehas_b_frames: the copies havehas_b_frames=1, and the encoded ones havehas_b_frames=2. I am using the ffmpeg built into LosslessCut 3.67.2 (macOS x64).I manually reran the commands to generate the encoded segments with
-bf 1to set thehas_b_framesparameter for the encoder, then concatenated them using-i concat:...(I am using mpegts intermediaries for simplicity). Surprisingly, this works great!So, I would suggest that in addition to the bit rate and codec, that the
has_b_frames/bfencoder parameter be copied from the original input. It seems like many videos in the wild usehas_b_frames=1, but the built-in encoder with LosslessCut seems to default to 2.Thank you for the nice project! I successfully completed my editing task using this tool and the small manual fix, so I hope this idea is useful to others.
P.S.: I would sincerely wish for the
app.logto produce copy-paste-able commands. In particular,-f concat -i-is a bit unfortunate because I have to guess what the input is. Even something likeecho ... >> concat.tmpthen-f concat -i concat.tmpwould be helpful. That way I can manually rerun the entire sequence of commands if some manual fix is required.Beta Was this translation helpful? Give feedback.
All reactions