Re: scripts for processing mov files into something for youtube
Kali McLaughlin <[email protected]>
| Newsgroups | gmane.linux.lfs.general |
|---|---|
| Message-ID | <[email protected]> |
What an epic! I thought I had a hard time learning all the switches in sox, lame, and mpg123. Regards Kali On Fri, 1 Aug 2014, Ken Moffat wrote: > On Wed, Jul 16, 2014 at 05:22:45PM +0100, Ken Moffat wrote: > > Moving to chat, it's probably a bit too far beyond BLFS to keep it > on support :) So, I'll keep the whole of this for context. > >> On Wed, Jun 25, 2014 at 01:05:50AM +0100, Ken Moffat wrote: >>> On Fri, Jun 20, 2014 at 02:12:41AM +0100, Ken Moffat wrote: >>>> >>>> After two days of intermittent banging my head against a keyboard / >>>> googling / cursing, I have now got a process of preparing the >>>> individual clips with ffmpeg to a position where it might be usable. >>> [...] >>>> >>>> What I have done for now is to keep the audio as .wav, and called >>>> it a .mkv file because it clearly isn't mp4. Xine only plays the >>>> video from this. The benefit of this is that the although even the >>>> video has now grown by 67ms, the audio has only grown by 69ms so the >>>> relative loss of sync is 2ms for this clip. >>>> >>>> Still need to do similar things to at least one other clip (but >>>> I think I now understand the process, and on a good day I can >>>> remember how the ffmpeg options fit together), and prepare at least a >>>> title image, then I will find out if I can successfully convert it >>>> all to mp4 and upload it to youtube : for the moment, I am sort-of >>>> expecting that to fail, in which case I will be in mega-sulk mode in >>>> a few days :-( >>>> >>> >>> And now getting very close to mega-sulk mode, and I have not even >>> got as far as trying to upload to youtube. >>> >> [ ... ] >>> >>> So, last night I did a quick test with the first two clips, using >>> -preset ultrafast for a single pass encoding. That worked, although >>> the video quality on one clip was noticeably worse than with the >>> -preset veryslow two-pass encoding. >>> >> [ ... ] >>> I can almost remember how I felt the last time I eventually gave up >>> trying to edit my clips (that was apparently with ffmpeg-0.7.4). I >>> hesitate to say "suggestions welcome" because some suggestions will >>> undoubtedly upset me, but has anyone here edited .mov video clips >>> into a single video using _recent_ ffmpeg ? >>> >> At last, a *progress* report - >> >> Came back to this on Monday. At last I have some success to >> report (but I also realise that I've got to review almost everything >> I've done along the way - the ffmpeg wiki >> https://trac.ffmpeg.org/wiki/Encode/H.264 suggests many of the >> settings I have used are suboptimal). >> >> Anyway, my example is now at >> https://www.youtube.com/watch?v=VmfYQKvmGSQ (views from a train on >> the Arosa line of the RhB in Switzerland). I'm sure very few people >> here will find the subject interesting, but there we are. Perhaps >> the captions at start and end might raise a smile. >> >> I am sort-of hoping to document how to do this in a hint (ffmpeg >> is a fast-moving target, I've only done this on 2.2.2 which is >> already "old"), but the process is somewhat tedious and involved [ >> that maybe will not deter BLFS users ]. The worst part is putting >> the processed clips back together. For example, the command to >> create this video from only 5 parts was like: >> >> ffmpeg -i start-caption.mkv -i clip1.mkv -i clip2.mkv \ >> -i clip3.mkv -i end-caption.mkv \ >> -filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] [3:0] [3:1] [4:0] [4:1] concat=5:v=1:a=1 [v] >> [a]' \ >> -map '[v]' -map '[a]' -s 1280x720 \ >> -vcodec libx264 -tune film -b:v 7000k \ >> -acodec libfdk_aac -cutoff 16000 -b:a 128k -y \ >> outfile.mkv >> >> and those parameters for -filter_complex will get longer for each >> additional file :-( Also, it re-encodes when doing this, which I >> had hoped to avoid - turns out only straight mp4 can be >> concatenated, but I took the opportunity to change the audio to aac >> ready for upload. >> >> I also tried mkvmerge from mkvtoolnix-7.0.0 but it did not work for >> me, so I guess I'll file a general bug and see if my use-case is >> valid. <sigh/> >> >> With luck, I might finish my film for that line (perhaps another 10 >> clips / 7 minutes) sometime this year :) >> >> ĸen > > So, I reworked what I was doing (changed to single-pass encodes, and > eventually to just playing with the crf value (I use x264 for > video). What I had originally done in 2011 was to use two-pass, > play with presets, and change the size of the video buffer. With > ffmpeg-2.2.2 and recent x264 I find that specifying a crf makes a > lot of difference to how long it takes, and how big the files are - > playing with the video buffer size makes a minimal difference to > those, but did reduce the quality, and playing with different > presets seemed unhelpful. > > The scripts are now at > https://github.com/zarniwhoop73/video-scripts and licensed under the > WTFPL - if I had written any significant code, I would have used > GPL, but this is 99% scraped from google's results. The only part I > think is an interesting hack is that I change any spaces in text > (captions superimposed on the video) to non-break-space because I > can't get my head around the quoting of shell variables used to make > up video filter parameters in ffmpeg (double quotes, escaped or not, > break it, and spaces in the text also broke it). > > So, now it is out there, I won't be writing a hint. > > Examples of the results are in my youtube files (user zarnimovies), > e.g. Landwasser : http://youtu.be/FXcs9urpU5g for a short one > (actually just one clip, no captions), and along the Engadin > http://youtu.be/HVWBDRKFLXI for the most recent (27 files, including > 'slide' captions and text overlays - I would not have fancied > typing the merge command for this one ;) As with my manually > prepared version mentioned above, these are all trains/landscape, > and variable quality. So probably not interesting to most people. > But I guess the scripts might be. Mostly they use ffmpeg, with sox > to handle fading the audio. > > A summary of how to use them follows - I guess that almost everyone > who reads this far won't care, but this is -chat so here goes : > > My editing is now straightforward - list the clips, check duration > / where to cut using vlc, cut with ffmpeg (i.e. copy the original > mov file to a new name, specifying start/time as appropriate - for > overlaid text I split a clip into before|text|after versions). > > Then, I use my video-summary script to confirm the length, and > number of frames, for each clip. That script uses MediaInfo-CLI. > After that I can pass in values for video-fade-in/out (start frame > and number of frames), volume (255=unchanged), text, audio fade > (parms passed to sox, things like "h 2 0". So simple, even I can > do it. > > For "slides" I either take a still photo, or extract a png from > the video, scrawl over it in the gimp, and use the slide script to > create an mkv file of a specified duration, with silence. > > Then I use the merge script, perhaps with a title (in fact, > youtube seems to ignore titles in the video itself), and see how > little quality (high crf setting) I think I can get away with : I've > got decent download speed from virginmedia, but the best upload is > about 2Mbps (about 10.5MB/minute in practice), so large uploads are > tedious. > > ĸen > -- > Nanny Ogg usually went to bed early. After all, she was an old lady. > Sometimes she went to bed as early as 6 a.m. > -- > http://lists.linuxfromscratch.org/listinfo/lfs-chat > FAQ: http://www.linuxfromscratch.org/blfs/faq.html > Unsubscribe: See the above information page > -- http://lists.linuxfromscratch.org/listinfo/lfs-chat FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page