samirkumardas / jmuxer

jMuxer - a simple javascript mp4 muxer that works in both browser and node environment.
Other
555 stars 112 forks source link

h264 modify 800x448 to 448x800 #34

Closed yinjun622 closed 4 years ago

yinjun622 commented 5 years ago

When playing h264 video, modify 800x448 to 448x800, it can't display normally.

ffplay plays normally. d.h264.zip

samirkumardas commented 5 years ago

I just tested. It played fine. What issue you have having?

I just saw some distortion frames in between

yinjun622 commented 5 years ago

I just tested. It played fine. What issue you have having?

I just saw some distortion frames in between

some distortion frames, because of changed the screen 800x448 to 448x800.

used the jmuxer:

屏幕快照 2019-08-26 上午10 13 54

(00:00:14)

used the ffplay:

屏幕快照 2019-08-26 上午10 14 55

(00:00:14)

samirkumardas commented 5 years ago

Have you clicked play button? It won't start automatically. I am getting as same as ffplay

yinjun622 commented 5 years ago

Yes, I clicked play button. and ffplay can be played automatically on my mac .

$ ffplay d.h264
ffplay version 4.1.4 Copyright (c) 2003-2019 the FFmpeg developers
  built with Apple LLVM version 10.0.1 (clang-1001.0.46.4)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.4_1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-12.0.1.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/adoptopenjdk-12.0.1.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-libaom --enable-libsoxr

but my question is that when the width and height are changed, it can't be shown like ffplay.

屏幕快照 2019-08-26 下午1 35 54
samirkumardas commented 4 years ago

Sorry I was extremely busy for the last few weeks. I got your point. Basically I do not re-fetch PPS and SPS once it I got it unless you reset it manually. Please check this to get an idea. Basically you can adjust code there if you want to fetch PPS and SPS every time and of-course it is performance issue

jithingangadharan commented 4 years ago

Sorry I was extremely busy for the last few weeks. I got your point. Basically I do not re-fetch PPS and SPS once it I got it unless you reset it manually. Please check this to get an idea. Basically you can adjust code there if you want to fetch PPS and SPS every time and of-course it is performance issue

==> How to make re-fetch PPS and SPS based on the size change dynamically?

jithingangadharan commented 4 years ago

Yes, I clicked play button. and ffplay can be played automatically on my mac .

$ ffplay d.h264
ffplay version 4.1.4 Copyright (c) 2003-2019 the FFmpeg developers
  built with Apple LLVM version 10.0.1 (clang-1001.0.46.4)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.4_1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-12.0.1.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/adoptopenjdk-12.0.1.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-libaom --enable-libsoxr

but my question is that when the width and height are changed, it can't be shown like ffplay.

屏幕快照 2019-08-26 下午1 35 54

Did you find the solution?

darak1 commented 4 years ago

Sorry I was extremely busy for the last few weeks. I got your point. Basically I do not re-fetch PPS and SPS once it I got it unless you reset it manually. Please check this to get an idea. Basically you can adjust code there if you want to fetch PPS and SPS every time and of-course it is performance issue

can you please tell me how to fetch PPS and SPS everytime.actually i removed both if if (!this.track.pps) { } and for sps also still getting the same error

SANSA27 commented 10 months ago

was this issue fixed.