0

The ffmpeg command below does convert mp4 file from avi file successfully for chrome browser, but with browsers such as safari and IE(I have not tested with other browsers yet.) I can not see the video and I only can hear the audio which simply means that safari and IE browsers do not accept the conversion of video from avi file to mp4 file.

for i in /xxxxxx/xxxxxxx/xxxxxxx/*.avi; do ffmpeg -i "$i" -pix_fmt yuvj422p "/xxxxxx/xxxxxxx/xxxxxxx/$(basename "$i" .avi).mp4"; done    

By the way, when I tried from flv file to mp4 with the same ffmpeg command both video and audio were successfully converted for chrome, safari, and IE.(I have not tested yet with others.)

The avi file is the one I shot with my camera, and flv file is the one I downloaded from web.

Can anyone please help me out?

The log file below is for the ffmpeg command from avi to mp4.(avi file is the one I shot with my camera)

[root@server-xxxxxxx-x ~]# for i in /xxxxxx/xxxxxxx/xxxxxxx/09190100_5ba1211c6905e.avi;  do ffmpeg -i "$i" -pix_fmt yuvj422p "/xxxxxx/xxxxxxx/xxxxxxx/$(basename "$i" .avi).mp4"; done
ffmpeg version N-46948-g776cdd1dc8-static https://johnvansickle.com/ffmpeg/  Copyright  (c) 2000-2018 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --  disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 -- enable-libxml2 --enable-libxvid --enable-libzimg
  libavutil      56. 19.101 / 56. 19.101
  libavcodec     58. 30.100 / 58. 30.100
  libavformat    58. 18.100 / 58. 18.100
  libavdevice    58.  4.103 / 58.  4.103
  libavfilter     7. 31.100 /  7. 31.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
  Guessed Channel Layout for Input Stream #0.1 : mono
  Input #0, avi, from '/xxxxxx/xxxxxxx/xxxxxxx/09190100_5ba1211c6905e.avi':
   Metadata:
    creation_time   : 2018-09-14 00:18:07
    encoder         : CanonMVI06
    Duration: 00:00:04.20, start: 0.000000, bitrate: 12999 kb/s
     Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p(pc,   bt470bg/unknown/unknown), 640x480, 12384 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc
      Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, mono, s16, 705 kb/s
  Stream mapping:
   Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
   Stream #0:1 -> #0:1 (pcm_s16le (native) -> aac (native))
  Press [q] to stop, [?] for help
  [libx264 @ 0x66f7c40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2   AVX2
  [libx264 @ 0x66f7c40] profile High 4:2:2, level 3.0, 4:2:2, 8-bit
  [libx264 @ 0x66f7c40] 264 - core 157 r2932 303c484 - H.264/MPEG-4 AVC codec - Copyleft     2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0   analyse=0x3:0x113 me=hex subme=7 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=3    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=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf    mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
  Output #0, mp4, to '/xxxxxx/xxxxxxx/xxxxxxx/09190100_5ba1211c6905e.mp4':
   Metadata:
     encoder         : Lavf58.18.100
     Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuvj422p(pc), 640x480, q=-1- -1, 30 fps, 1000k tbn, 30 tbc
     Metadata:
       encoder         : Lavc58.30.100 libx264
      Side data:
        cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
      Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s
      Metadata:
        encoder         : Lavc58.30.100 aac
  frame=  126 fps= 42 q=-1.0 Lsize=     243kB time=00:00:04.20 bitrate= 474.3kbits/s    speed= 1.4x
video:203kB audio:35kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead:    2.440238%
[libx264 @ 0x66f7c40] frame I:1     Avg QP:24.22  size: 16730
[libx264 @ 0x66f7c40] frame P:32    Avg QP:24.48  size:  4020
[libx264 @ 0x66f7c40] frame B:93    Avg QP:25.83  size:   662
[libx264 @ 0x66f7c40] consecutive B-frames:  1.6%  0.0%  0.0% 98.4%
[libx264 @ 0x66f7c40] mb I  I16..4: 11.2% 86.4%  2.4%
[libx264 @ 0x66f7c40] mb P  I16..4:  1.0%  0.8%  0.0%  P16..4: 54.9%  7.1%  6.3%  0.0%     0.0%    skip:29.8%
[libx264 @ 0x66f7c40] mb B  I16..4:  0.1%  0.1%  0.0%  B16..8: 26.0%  0.2%  0.0%  direct:     1.1%  skip:72.5%  L0:47.1% L1:52.0% BI: 1.0%
[libx264 @ 0x66f7c40] 8x8 transform intra:68.3% inter:88.6%
[libx264 @ 0x66f7c40] coded y,uvDC,uvAC intra: 51.1% 78.4% 10.4% inter: 4.8% 24.4% 0.1%
[libx264 @ 0x66f7c40] i16 v,h,dc,p: 17% 26%  5% 52%
[libx264 @ 0x66f7c40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 32% 22%  3%  4%  2%  6%  5%  5%
[libx264 @ 0x66f7c40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 25% 12%  1% 12%  3% 10%  4%  2%
[libx264 @ 0x66f7c40] i8c dc,h,v,p: 48% 23% 25%  4%
[libx264 @ 0x66f7c40] Weighted P-Frames: Y:3.1% UV:3.1%
[libx264 @ 0x66f7c40] ref P L0: 45.3%  9.1% 32.9% 12.4%  0.3%
[libx264 @ 0x66f7c40] ref B L0: 74.7% 20.7%  4.7%
[libx264 @ 0x66f7c40] ref B L1: 88.4% 11.6%
[libx264 @ 0x66f7c40] kb/s:394.12
user27240
  • 49
  • 10
  • did you solved it? – Maneesh Rao Sep 22 '20 at 05:43
  • Thanks Maneesh Rao, I'm facing now the same problem in new environment that I set up by using centos8/PHP7/mysql8 environment. I only can hear sound and can not see any video of mp4 file. Again, I do not have this issue by using the same code in centos6/php5/mysql5 environment. Could you please help me if you can? – user27240 Sep 23 '20 at 15:57

2 Answers2

1

Change -pix_fmt yuvj422p to -pix_fmt yuv420p which is the only widely supported pixel format.

Unrelated to the issue in the question, but also add -movflags +faststart as it appears you are providing the videos as progressive download.

llogan
  • 121,796
  • 28
  • 232
  • 243
  • LordNeckbeard, It is working for safari, IE, and chrome. Even though I still have to test with opera, firefox, and others, I assume they would be fine too. I really appreciate your time again. Actually I would not have come this far without your sincere support. Thank you. – user27240 Sep 18 '18 at 18:31
0

Use this, Hope it will work.

   $cmd = ' -i '.$inputFile.' -c:v libx264 -crf 19 '.$outputFile;
   exec('ffmpeg '.$cmd, $out, $ret);
Maneesh Rao
  • 184
  • 4
  • 23
  • Maneesh Rao, thanks for the code, I've tried, but not working. Without your code, I've tried with using chrome,firefox,edge, and opera on Windows10 and Windows Vista at client and on centos8/php7/mysql8 server and I have had a issue of not being able to see the video like I explained before. – user27240 Sep 25 '20 at 10:34
  • However, by using the same ffmpeg code, I have no problem of seeing the video and listning to the audio on chrome and safari on Apple's iPad which is iOs at client and on centos8/php7/mysql8 at server. Since it's working on iOs the ffmpeg file transformation code seems to be fine at least for iOS. Do you have any idea what's wrong with Windows in this case of centos8/php7/mysql8 where again it is working on centos6/php5/mysql5? – user27240 Sep 25 '20 at 10:35
  • @user27240 I have no idea about Centos. – Maneesh Rao Sep 28 '20 at 06:01
  • Maneesh Rao, it seems that it's related to the issue of the link below. So I'll work on it. Anyway I really appreciate your time and effort. Thank you very much. https://stackoverflow.com/questions/52322544/ffmpeg-command-to-convert-from-avi-to-mp4-in-php-script – user27240 Sep 28 '20 at 13:34