Batch Video Converter

Search This thread

paracha3

Senior Member
Jan 13, 2008
199
16
Phoenix
Although it seems to be working very reliably, the software is still a bit rough around the edges. I'll try in a future version to check for what is available, for example, if libfdk_aac is not there I can use MP3 instead.

That would be sweet.

---------- Post added at 02:42 PM ---------- Previous post was at 02:05 PM ----------

Although it seems to be working very reliably, the software is still a bit rough around the edges. I'll try in a future version to check for what is available, for example, if libfdk_aac is not there I can use MP3 instead.

wish i would get the compiled ffmpeg.exe with libfdk_acc. I do not want to install a lot of "bloatware" (if i may) to compile one exe.

Just a side note, i don't get the logic behind documenting the compile instructions and asking people to compile with fdkaac_lib but make it illegal to distribute compiled exe? Its beyond me......????

---------- Post added at 03:41 PM ---------- Previous post was at 02:42 PM ----------

the conversion uses a two-pass method for best quality.
1st pass is only processing the video and doesn't even look at the audio. On the 2nd pass the audio is added/processed.

The video you got without audio is the result of the 1st pass, and the 2nd pass never executed because it failed.

My guess is that your compilation of FFMPEG does not have libfdk_aac (the audio library used for conversion keeping the best quality possible).
Unfortunately this library is tagged as "-non-free" so you can't just download from somewhere. It's illegal to do so. You have to follow the guide here https://trac.ffmpeg.org/wiki/CompilationGuide to compile the library yourself on your PC..

As I said before, I really wished it would be more user-friendly. But that's out of my control.

Probably in a future version I'll try to detect if this library is available and if it's not use the native one, that renders a not so great quality, but at least works in all cases.

Compiled ffmpeg.exe with libfdk_aac and now the conversion finished successfully and as far as PC, it has video and audio. Yuhooo!!
Will try on chromecast when i get home. Optimistic though.

One suggestion though, on your Chromecast Converter, give an option on UI to "Not delete original" file after conversion. That would be nice.
Thanks
 

Budius

Senior Member
May 1, 2010
229
58
wish i would get the compiled ffmpeg.exe with libfdk_acc. I do not want to install a lot of "bloatware" (if i may) to compile one exe.
As a developer I don't see compilers as bloatware, but I totally understand your feeling


Just a side note, i don't get the logic behind documenting the compile instructions and asking people to compile with fdkaac_lib but make it illegal to distribute compiled exe? Its beyond me......????
Totally beyond me too, but, if they say it's illegal I'm not getting into trouble.


Compiled ffmpeg.exe with libfdk_aac and now the conversion finished successfully and as far as PC, it has video and audio. Yuhooo!!
Will try on chromecast when i get home. Optimistic though.
I'm sure it's all fine. There's no way it convert everything and at the end it's the wrong codec. It either fails or works.


One suggestion though, on your Chromecast Converter, give an option on UI to "Not delete original" file after conversion. That would be nice.
For sure there's a lot of options we could include on the UI, that's the basics, and also is the main functionality I wanted for myself (I can't afford to duplicate all the videos on my terabyte drive). But I wanted to put it out for people to use and hopefully some developer with more experience in Java UI will give me a help =] That's what's open source for, right :)
 

nigelhealy

Senior Member
Aug 3, 2012
1,537
444
Preston
tiny tiny edit suggestion, on Linux the file is case-sensitive you've named your file ChromecastConverter.jar so command
"java -jar chromecastconverter.jar" doesn't work but "java -jar ChromecastConverter.jar" does. For any Linux newbies.:rolleyes:
 

nigelhealy

Senior Member
Aug 3, 2012
1,537
444
Preston
UP !
new version available. See 1st post for change log.

Thanks for the update.

In my house I tend to watch on Android which MX Player plays everything but others prefer IOS and Chromecast which is far more picky, actually its the IOS over http of a NAS which has my greater need, and Chromecast is actually less picky than IOS.

Your tool, it now gives many more options but it isn't really explaining me what they mean, I see speed and quality and "same size". Apart from "same size" I don't know what these choices are.... short of trying each option and not having it delete the source and then making a visual check...?

1TB NAS 70% mostly of AVIs accumulated ~ 10 years, to convert.....
 

Budius

Senior Member
May 1, 2010
229
58
Thanks for the update.

In my house I tend to watch on Android which MX Player plays everything but others prefer IOS and Chromecast which is far more picky, actually its the IOS over http of a NAS which has my greater need, and Chromecast is actually less picky than IOS.

Your tool, it now gives many more options but it isn't really explaining me what they mean, I see speed and quality and "same size". Apart from "same size" I don't know what these choices are.... short of trying each option and not having it delete the source and then making a visual check...?

1TB NAS 70% mostly of AVIs accumulated ~ 10 years, to convert.....

hi,

I've added a few comments on the 1st post regarding the new options. But sum up is: unless you read the FFMPEG encoding guide and have really good reason to change any of defaults, just go with Defaults that you'll always get fine quality and rare file increase.
 

panda78

Member
Aug 3, 2007
27
0
sorry Budius, but i have a problem.
this is the log :


23:43:33 - Failed to get FFPROBE for /Users/Andrea/Movies/Enders Game.mkv
 

nigelhealy

Senior Member
Aug 3, 2012
1,537
444
Preston
Bug. Possibly this is is my build of ffmpeg ? This thing been running for many hours no problems possibly I think this is first to attempt to convert a .m4v format file?

In case of a bum file, I tried making mp4 using Handbrake and it worked so its either your Jar or the ffmpeg I built.

java -jar ChromecastConverter.jar
onStart
click_btnInputFile
click_btnGo
=====================================================================================================
Delete on success.
Speed: slow
Quality: normal
Settings:
================================================================================
ffprobe parsing file: /media/blah-blah-blah....
ffprobe version 2.2.git Copyright (c) 2007-2014 the FFmpeg developers
built on Mar 31 2014 13:10:45 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configuration: --prefix=/home/nigel/ffmpeg_build --extra-cflags=-I/home/nigel/ffmpeg_build/include --extra-ldflags=-L/home/nigel/ffmpeg_build/lib --bindir=/home/nigel/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
libavutil 52. 70.100 / 52. 70.100
libavcodec 55. 55.106 / 55. 55.106
libavformat 55. 36.100 / 55. 36.100
libavdevice 55. 11.100 / 55. 11.100
libavfilter 4. 3.100 / 4. 3.100
libswscale 2. 5.102 / 2. 5.102
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, matroska,webm, from '/media/blah-blah-blah...':
Metadata:
title : blah
encoder : libebml v0.7.9 + libmatroska v0.8.1
creation_time : 2010-09-17 17:47:14
Duration: 00:29:39.12, start: 0.000000, bitrate: 492 kb/s
Chapter #0.0: start 0.097000, end 1779.115000
Metadata:
title : 00:00:00.097
Stream #0:0: Video: h264 (High), yuv420p, 688x480 [SAR 159:172 DAR 53:40], SAR 160:173 DAR 688:519, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1: Audio: aac, 48000 Hz, stereo, fltp (default)
Stream #0:2: Subtitle: subrip (default)
Runtime execution finished with success
Runtime execution finished with success
Exception in thread "pool-2-thread-1" java.lang.NullPointerException
at com.budius.chromecast.converter.SingleConversionSetting.getSubtitleFileName(SingleConversionSetting.java:55)
at com.budius.chromecast.converter.FFMpegBuilder.internalGetSubtitle(FFMpegBuilder.java:326)
at com.budius.chromecast.converter.FFMpegBuilder.<init>(FFMpegBuilder.java:57)
at com.budius.chromecast.converter.FFMpeg.<init>(FFMpeg.java:18)
at com.budius.chromecast.converter.ExecutionControl.executeFile(ExecutionControl.java:90)
at com.budius.chromecast.converter.ExecutionControl.run(ExecutionControl.java:52)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
 

Budius

Senior Member
May 1, 2010
229
58
Bug. Possibly this is is my build of ffmpeg ? This thing been running for many hours no problems possibly I think this is first to attempt to convert a .m4v format file?

In case of a bum file, I tried making mp4 using Handbrake and it worked so its either your Jar or the ffmpeg I built.

Code:
Exception in thread "pool-2-thread-1" java.lang.NullPointerException
at com.budius.chromecast.converter.SingleConversionSe tting.getSubtitleFileName(SingleConversionSetting. java:55)
at com.budius.chromecast.converter.FFMpegBuilder.inte rnalGetSubtitle(FFMpegBuilder.java:326)

that is definitely my fault. Some error trying to extract the subtitle (oh yeah, it also extracts .srt subtitle from the files so you can cast them ;) with your videos) from your file, nothing to do with the file format.

I'll check it out this weekend and hopefully have an update later on Sunday.
 

nigelhealy

Senior Member
Aug 3, 2012
1,537
444
Preston
Code:
Exception in thread "pool-2-thread-1" java.lang.NullPointerException
at com.budius.chromecast.converter.SingleConversionSe tting.getSubtitleFileName(SingleConversionSetting. java:55)
at com.budius.chromecast.converter.FFMpegBuilder.inte rnalGetSubtitle(FFMpegBuilder.java:326)

that is definitely my fault. Some error trying to extract the subtitle (oh yeah, it also extracts .srt subtitle from the files so you can cast them ;) with your videos) from your file, nothing to do with the file format.

I'll check it out this weekend and hopefully have an update later on Sunday.

OK thanks. I'm continuing with my 1TB re-coding and come back to this after you fixed it. It is odd as there is no .srt files in that folder and I copied a sample file into a different directory and other ideas to see why this specific set of files had an issue.
 

Budius

Senior Member
May 1, 2010
229
58
It is odd as there is no .srt files in that folder

If you check the meta-data extracted from the file (that was what you posted)
Code:
Stream #0:0: Video: h264 (High), yuv420p, 688x480 [SAR 159:172 DAR 53:40], SAR 160:173 DAR 688:519, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1: Audio: aac, 48000 Hz, stereo, fltp (default)
Stream #0:2: Subtitle: subrip (default)

the subtitle is inside the actual video file (stream 2), but Apps like LocalCast (android) and Videostream (chrome) can only cast the subtitle to Chromecast if it's in a separate .srt file, so the ChromecastConverter is extracting it into a .srt.
 

Budius

Senior Member
May 1, 2010
229
58
OK thanks. I'm continuing with my 1TB re-coding and come back to this after you fixed it. It is odd as there is no .srt files in that folder and I copied a sample file into a different directory and other ideas to see why this specific set of files had an issue.

I fixed already (I think). The link is on the first post.
Could you check that file again and let me know if it's all working fine?
 

nigelhealy

Senior Member
Aug 3, 2012
1,537
444
Preston
I fixed already (I think). The link is on the first post.
Could you check that file again and let me know if it's all working fine?

It's working. Thanks. Interesting, the offending files are converting very fast, in a few seconds like all it is doing is extracting the .srt and the .mkv files are straight copied to mp4.
 

Budius

Senior Member
May 1, 2010
229
58
It's working. Thanks. Interesting, the offending files are converting very fast, in a few seconds like all it is doing is extracting the .srt and the .mkv files are straight copied to mp4.

yeah, to save on time the tool first analyses the file, compares to what Chromecast supports, and then only changes the necessary.
happy it worked fine now.
 

nigelhealy

Senior Member
Aug 3, 2012
1,537
444
Preston
yeah, to save on time the tool first analyses the file, compares to what Chromecast supports, and then only changes the necessary.
happy it worked fine now.

Another bug!

Directory with files like this cause absolutely nothing to happen. Let's first say that a file which doesn't need changing causes this

Code:
...No need to change ...

Below, this bug is not that type of file, here is a file which is completely ignored as if it doesn't exist, I've checked file permissions it is same as those files which are seen and confirmed ignored

This is output from ffprobe of an ignored file

Code:
ffprobe file-blah-blah.m4v
ffprobe version 2.2.git Copyright (c) 2007-2014 the FFmpeg developers
  built on Mar 31 2014 13:10:45 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --prefix=/home/nigel/ffmpeg_build --extra-cflags=-I/home/nigel/ffmpeg_build/include --extra-ldflags=-L/home/nigel/ffmpeg_build/lib --bindir=/home/nigel/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      52. 70.100 / 52. 70.100
  libavcodec     55. 55.106 / 55. 55.106
  libavformat    55. 36.100 / 55. 36.100
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'blah-blah.m4v':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    creation_time   : 2011-12-12 21:22:35
    encoder         : HandBrake 0.9.5 2011010300
  Duration: 00:21:29.83, start: 0.000000, bitrate: 464 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 624x352 [SAR 1:1 DAR 39:22], 301 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2011-12-12 21:22:35
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 159 kb/s (default)
    Metadata:
      creation_time   : 2011-12-12 21:22:35

I'm continuing to process what will be processed (e.g. the earlier bug fixed directory).
 

nigelhealy

Senior Member
Aug 3, 2012
1,537
444
Preston
A little more insight into the outstanding bug.

If I point to a file it converts, but if I point to the folder containing the file, it completely ignores it, as if your directory listing isn't seeing it. I've eliminated all possible obvious causes, the file is readable, some of the files in the folder are converted and when I re-try the folder the converted files flag as no need to convert.

Log of a file which is ignored if in a folder but not ignored if explicitly point to the file. I cobbled this from the screen from two file conversions which worked.

Code:
ffprobe parsing file: blah-blah..m4v
ffprobe version 2.2.git Copyright (c) 2007-2014 the FFmpeg developers
  built on Mar 31 2014 13:10:45 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --prefix=/home/nigel/ffmpeg_build --extra-cflags=-I/home/nigel/ffmpeg_build/include --extra-ldflags=-L/home/nigel/ffmpeg_build/lib --bindir=/home/nigel/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      52. 70.100 / 52. 70.100
  libavcodec     55. 55.106 / 55. 55.106
  libavformat    55. 36.100 / 55. 36.100
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'blah-blah.m4v':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    creation_time   : 2012-03-11 05:36:23
    encoder         : HandBrake 0.9.6 2012022800
  Duration: 00:21:28.09, start: 0.000000, bitrate: 686 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 624x352 [SAR 1:1 DAR 39:22], 298 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2012-03-11 05:36:23
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
    Metadata:
      creation_time   : 2012-03-11 05:36:23
    Stream #0:2(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 224 kb/s
    Metadata:
      creation_time   : 2012-03-11 05:36:23
Runtime execution finished with success
Runtime execution finished with success
Starting single pass for file: blah-blah.m4v
Executing [ffmpeg  -i  blah-blah.m4v  -c:v  libx264  -profile:v  high  -level  5  -preset  fast  -crf  23  -maxrate  298487  -bufsize  5M  -c:a  libfdk_aac  -cutoff  18000  -b:a  160006  -movflags  +faststart blah-blah_temp_1399250911176.mp4]
ffmpeg version 2.2.git Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar 31 2014 13:10:45 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --prefix=/home/nigel/ffmpeg_build --extra-cflags=-I/home/nigel/ffmpeg_build/include --extra-ldflags=-L/home/nigel/ffmpeg_build/lib --bindir=/home/nigel/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      52. 70.100 / 52. 70.100
  libavcodec     55. 55.106 / 55. 55.106
  libavformat    55. 36.100 / 55. 36.100
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'blah-blah.m4v':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    creation_time   : 2012-03-11 05:36:23
    encoder         : HandBrake 0.9.6 2012022800
  Duration: 00:21:28.09, start: 0.000000, bitrate: 686 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 624x352 [SAR 1:1 DAR 39:22], 298 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2012-03-11 05:36:23
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
    Metadata:
      creation_time   : 2012-03-11 05:36:23
    Stream #0:2(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 224 kb/s
    Metadata:
      creation_time   : 2012-03-11 05:36:23
[libx264 @ 0x38ee3c0] using SAR=1/1
[libx264 @ 0x38ee3c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x38ee3c0] profile High, level 5.0
[libx264 @ 0x38ee3c0] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=23 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=298 vbv_bufsize=5000 crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'blah-blah_temp_1399250911176.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    encoder         : Lavf55.36.100
    Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 624x352 [SAR 1:1 DAR 39:22], q=-1--1, max. 298 kb/s, 24k tbn, 23.98 tbc (default)
    Metadata:
      creation_time   : 2012-03-11 05:36:23
    Stream #0:1(und): Audio: aac (libfdk_aac) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 160 kb/s (default)
    Metadata:
      creation_time   : 2012-03-11 05:36:23
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (aac -> libfdk_aac)
Press [q] to stop, [?] for help
frame=   96 fps=0.0 q=28.0 size=     156kB time=00:00:04.07 bitrate= 313.7kbits/s    
frame=  156 fps=153 q=28.0 size=     362kB time=00:00:06.63 bitrate= 446.7kbits/s    
frame=  208 fps=136 q=28.0 size=     562kB time=00:00:08.68 bitrate= 530.7kbits/s  

]mp4 @ 0x30ad980] Starting second pass: moving the moov atom to the beginning of the file
frame=31979 fps=111 q=-1.0 Lsize=   74163kB time=00:22:13.78 bitrate= 455.5kbits/s dup=2 drop=0    
video:47249kB audio:26051kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.176881%
[libx264 @ 0x30ae3a0] frame I:409   Avg QP:22.93  size: 12320
[libx264 @ 0x30ae3a0] frame P:14067 Avg QP:26.90  size:  2283
[libx264 @ 0x30ae3a0] frame B:17503 Avg QP:28.50  size:   641
[libx264 @ 0x30ae3a0] consecutive B-frames: 20.9% 11.9% 19.6% 47.6%
[libx264 @ 0x30ae3a0] mb I  I16..4: 18.8% 42.6% 38.6%
[libx264 @ 0x30ae3a0] mb P  I16..4:  3.3%  3.9%  0.7%  P16..4: 46.1% 11.1%  3.5%  0.0%  0.0%    skip:31.5%
[libx264 @ 0x30ae3a0] mb B  I16..4:  0.8%  0.6%  0.0%  B16..8: 31.0%  3.6%  0.1%  direct: 2.9%  skip:61.0%  L0:52.5% L1:44.3% BI: 3.1%
[libx264 @ 0x30ae3a0] 8x8 transform intra:46.7% inter:73.5%
[libx264 @ 0x30ae3a0] coded y,uvDC,uvAC intra: 36.6% 43.5% 9.8% inter: 6.2% 7.1% 0.1%
[libx264 @ 0x30ae3a0] i16 v,h,dc,p: 41% 27% 11% 21%
[libx264 @ 0x30ae3a0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 20% 26%  3%  4%  5%  4%  5%  4%
[libx264 @ 0x30ae3a0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 26% 12%  5%  6%  6%  6%  5%  5%
[libx264 @ 0x30ae3a0] i8c dc,h,v,p: 58% 17% 22%  4%
[libx264 @ 0x30ae3a0] Weighted P-Frames: Y:0.4% UV:0.3%
[libx264 @ 0x30ae3a0] ref P L0: 79.0% 21.0%
[libx264 @ 0x30ae3a0] ref B L0: 86.6% 13.4%
[libx264 @ 0x30ae3a0] ref B L1: 95.4%  4.6%
[libx264 @ 0x30ae3a0] kb/s:290.19
Runtime execution finished with success
Completed in 289 seconds
Complete!
 

Top Liked Posts

  • There are no posts matching your filters.
  • 8
    Copy/Move feature V2.1.0
    move/copy file to output folder if the file doesn't need conversion

    Minor Bug Fix V2.0.1
    All the command line executions were being reported as seconds, but it was dividing milisecond by 100 instead of 1000

    Major Release V2.0

    Higher quality, faster conversions, more efficient checking, and super important: works with normal FFMPEG, no need to compile it yourself.

    Changes:
    - dropped GUI because aint nobody got time for that
    - major re-write, better structured code all together
    - properly checks available audio codecs and applies accordingly
    - due to the above audio changes, it works fine with FFMPEG static builds
    - yeah, normal builds you can simply download from ffmpeg.org
    - drop 2-pass video because aint nobody got time for that
    - moved code to gradle, all dependencies now come from mavenCentral(), no more downloaded **** on or folder
    - independently handle audio or video conversion or copy (greater efficiency)
    - separate warning and error log files

    Update V1.1.1 (minor crash fix)

    it's with great pleasure that I share with you guys my batch video converter for Chromecast.

    it's made to be a simple as possible, select a file or a whole folder, and Go.

    I did that to convert my terabyte of movies on my DLNA-NAS to be able to cast all of it without problems.
    Because of this main reason the application it DELETES THE ORIGINAL VIDEO FILE AFTER CONVERSION COMPLETION.
    So then the option `-d` can be used to delete the original after successful conversion.

    The app analyses the video stream of your files, compare with what Chromecast accepts and only converts what's necessary, keeping great quality, and avoiding unnecessary encoding.

    I also noticed that A LOT of apps does not play embedded subtitles, so in the process it extracts subtitle files so you can separately inject it into Chromecast.

    changelog:
    - v1.0.0 - initial release
    - v1.1.0 - re-worked FFMPEG script for better quality, new layout with settings for speed, quality, delete file, output folder.
    - v1.1.1 - Fix app not properly closing. Fix crash on subtitle stream without language tag.
    - V2.0 - check above
    - V2.1 - move/copy file to output folder if the file doesn't need conversion


    Downloads:
    - zip installation: Simply unzip the file on the location. Execute with ./cc_converter (linux/mac) or cc_converter (windows) from the command line
    - open source project: GitHub link (contribute!)

    Before starting:
    This tool is just a thin wrapper on FFMPEG, so if your PC doesn't have a working version of FFMPEG, the tool won't work.
    So make sure to download a build (recommended V3.0 or later) and have it available on your PATH
    On the official website you can find all the detailed instructions on how to compile FFMPEG on your PC https://trac.ffmpeg.org/wiki/CompilationGuide

    Yes, unfortunately you have to compile it yourself because, to keep great quality, the tool uses the non-free parts of FFMPEG.
    That means, when compiling, make sure to include libx264 and libfdk-aac and keep the enable-nonfree flag.


    Settings explanations:

    as per request a few explanations on options:

    the speed and quality options are directly related to x264 encoding options found here: https://trac.ffmpeg.org/wiki/x264EncodingGuide

    - the speed is exactly what they explain there. The faster the conversion the crappier the job.
    - the quality uses CRF (constant rate factor) and defaults to good quality for both audio and video.

    high quality = video CRF 18, audio 80kb/s per channel
    normal quality = video CRF 23, audio 64kb/s per channel
    low quality = video CRF 26, audio 48kb/s per channel

    On all my tests I ended up settling with Speed SLOW and quality HIGH as the Default because those will rarely increase the file size much and it will keep same quality.
    Those test were based on both converting 1994 Friends episode (pretty crappy quality) all the way to Full-HD 5.1 movies.

    So unless, you have a really good reason for it, I wouldn't change any of the defaults.
    1
    it's with great pleasure that I share with you guys my batch video converter for Chromecast.

    it's made to be a simple as possible, select a file or a whole folder, and click Go.

    I did that to convert my terabyte of movies on my DLNA-NAS to be able to cast all of it without problems.
    Because of this main reason the application it DELETES THE ORIGINAL VIDEO FILE AFTER CONVERSION COMPLETION.

    The app analyses the video stream of your files, compare with what Chromecast accepts and only converts what's necessary, keeping great quality.

    I also noticed that A LOT of apps does not play embedded subtitles, so in the process it extracts subtitle files so you can separately inject it into Chromecast.

    Downloads:
    - executable jar: Jar file download (execute it with java -jar chromecastconverter.jar)
    - open source project: GitHub link (for whoever feels like contributing)

    Can I run this on a headless Linux server like a Raspberry Pi running Rasbian?
    1
    Can I run this on a headless Linux server like a Raspberry Pi running Rasbian?


    It was build as a Java UI (using JavaFX), so I reckon the code it's not good for a headless server (although the objects in the code are quite modular and should be totally possible with minimum modification to do it)

    BUT,
    I urge anyone to not use it with a RaspberryPi, I have one myself and tried some FFMPEG on it and it's just so painfully slow!!! So so slow!
    Like a 20 seconds video would take 5 min to process.

    ps.: If anyone find a way to build FFMPEG on a raspPi that properly uses the GPU and makes stuff runs at proper speed, please let us know. :laugh:
    1
    First of all, I'm very happy that you got it working :highfive: . ...

    But for correctness the software converts anything that is not exactly as shown in the official website. I mean, I gotta follow the official stuff.

    .

    Well that is your feedback, make it remove re-coding that which actually works on Chromecast, it will save hours of recoding.
    1
    Dear OP,

    I tried converting a mkv file using your converter and at the end of conversion it created a mp4 file but message said that it failed. When i played the converted mp4 file on my PC, it plays video but no audio? any idea whey the audio is not playing back? I did not try on chromecast yet but i assume the audio wont play on it either.
    Thoughts? Thanks

    the conversion uses a two-pass method for best quality.
    1st pass is only processing the video and doesn't even look at the audio. On the 2nd pass the audio is added/processed.

    The video you got without audio is the result of the 1st pass, and the 2nd pass never executed because it failed.

    My guess is that your compilation of FFMPEG does not have libfdk_aac (the audio library used for conversion keeping the best quality possible).
    Unfortunately this library is tagged as "-non-free" so you can't just download from somewhere. It's illegal to do so. You have to follow the guide here https://trac.ffmpeg.org/wiki/CompilationGuide to compile the library yourself on your PC..

    As I said before, I really wished it would be more user-friendly. But that's out of my control.

    Probably in a future version I'll try to detect if this library is available and if it's not use the native one, that renders a not so great quality, but at least works in all cases.