Recherche avancée

Médias (0)

Mot : - Tags -/flash

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (76)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

Sur d’autres sites (14865)

  • Hello. I'd like to play a video on my app on android, I tried with videoplayer, it works but doesn't load the video simply open theUI but not thevideo

    26 octobre 2022, par Abdul

    I'd like to play a video on my app on android, I tried with videoplayer, it works but doesn't load the video ( simply open the UI but not the video).

    


    I found out i may need ffpyplayer so I changed buildozer requirements :
requirements = python3,kivy, android,ffpyplayer

    


    but buildozer failed to build apk when i added ffpyplayer and ffmpeg in buildozer.spec file in requirement.

    


    [DEBUG]:    If you think configure made a mistake, make sure you are using the latest&#xA;[DEBUG]:    version from Git.  If the latest version fails, report the problem to the&#xA;[DEBUG]:    ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.&#xA;[DEBUG]:    Include the log file "ffbuild/config.log" produced by configure as this will help&#xA;[DEBUG]:    solve the problem.&#xA;Exception in thread background thread for pid 77802:&#xA;Traceback (most recent call last):&#xA;  File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner&#xA;    self.run()&#xA;  File "/usr/lib/python3.7/threading.py", line 870, in run&#xA;    self._target(*self._args, **self._kwargs)&#xA;  File "/usr/local/lib/python3.7/dist-packages/sh.py", line 1641, in wrap&#xA;    fn(*rgs, **kwargs)&#xA;  File "/usr/local/lib/python3.7/dist-packages/sh.py", line 2569, in background_thread&#xA;    handle_exit_code(exit_code)&#xA;  File "/usr/local/lib/python3.7/dist-packages/sh.py", line 2269, in fn&#xA;    return self.command.handle_command_exit_code(exit_code)&#xA;  File "/usr/local/lib/python3.7/dist-packages/sh.py", line 869, in handle_command_exit_code&#xA;    raise exc&#xA;sh.ErrorReturnCode_1: &#xA;&#xA;  RAN: /content/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/ffmpeg/armeabi-v7a__ndk_target_21/ffmpeg/configure --disable-everything --enable-openssl --enable-nonfree --enable-protocol=https,tls_openssl --enable-gpl --enable-libx264 --enable-libshine --enable-libvpx --enable-parsers --enable-decoders --enable-encoders --enable-muxers --enable-demuxers --disable-symver --disable-programs --disable-doc --enable-filter=aresample,resample,crop,adelay,volume,scale --enable-protocol=file,http,hls,udp,tcp --enable-small --enable-hwaccels --enable-pic --disable-static --disable-debug --enable-shared --target-os=android --enable-cross-compile --cross-prefix=armv7a-linux-androideabi21- --arch=arm --strip=/root/.buildozer/android/platform/android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip --sysroot=/root/.buildozer/android/platform/android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot --enable-neon --prefix=/content/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/ffmpeg/armeabi-v7a__ndk_target_21/ffmpeg&#xA;&#xA;  STDOUT:&#xA;tput: No value for $TERM and no -T specified&#xA;tput: No value for $TERM and no -T specified&#xA;armv7a-linux-androideabi21-clang is unable to create an executable file.&#xA;C compiler test failed.&#xA;&#xA;If you think configure made a mistake, make sure you are using the latest&#xA;version from Git.  If the latest version fails, report the problem to the&#xA;ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.&#xA;Include the log file "ffbuild/config.log" produced by configure as this will help&#xA;solve the problem.&#xA;&#xA;&#xA;  STDERR:&#xA;&#xA;&#xA;Traceback (most recent call last):&#xA;  File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main&#xA;    "__main__", mod_spec)&#xA;  File "/usr/lib/python3.7/runpy.py", line 85, in _run_code&#xA;    exec(code, run_globals)&#xA;  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1297, in <module>&#xA;    main()&#xA;  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/entrypoints.py", line 18, in main&#xA;    ToolchainCL()&#xA;  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 730, in __init__&#xA;    getattr(self, command)(args)&#xA;  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 153, in wrapper_func&#xA;    build_dist_from_args(ctx, dist, args)&#xA;  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 215, in build_dist_from_args&#xA;    args, "ignore_setup_py", False&#xA;  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 505, in build_recipes&#xA;    recipe.build_arch(arch)&#xA;  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/recipes/ffmpeg/__init__.py", line 143, in build_arch&#xA;    shprint(configure, *flags, _env=env)&#xA;  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/logger.py", line 167, in shprint&#xA;    for line in output:&#xA;  File "/usr/local/lib/python3.7/dist-packages/sh.py", line 915, in next&#xA;    self.wait()&#xA;  File "/usr/local/lib/python3.7/dist-packages/sh.py", line 845, in wait&#xA;    self.handle_command_exit_code(exit_code)&#xA;  File "/usr/local/lib/python3.7/dist-packages/sh.py", line 869, in handle_command_exit_code&#xA;    raise exc&#xA;sh.ErrorReturnCode_1: &#xA;&#xA;  RAN: /content/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/ffmpeg/armeabi-v7a__ndk_target_21/ffmpeg/configure --disable-everything --enable-openssl --enable-nonfree --enable-protocol=https,tls_openssl --enable-gpl --enable-libx264 --enable-libshine --enable-libvpx --enable-parsers --enable-decoders --enable-encoders --enable-muxers --enable-demuxers --disable-symver --disable-programs --disable-doc --enable-filter=aresample,resample,crop,adelay,volume,scale --enable-protocol=file,http,hls,udp,tcp --enable-small --enable-hwaccels --enable-pic --disable-static --disable-debug --enable-shared --target-os=android --enable-cross-compile --cross-prefix=armv7a-linux-androideabi21- --arch=arm --strip=/root/.buildozer/android/platform/android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip --sysroot=/root/.buildozer/android/platform/android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot --enable-neon --prefix=/content/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/ffmpeg/armeabi-v7a__ndk_target_21/ffmpeg&#xA;&#xA;  STDOUT:&#xA;tput: No value for $TERM and no -T specified&#xA;tput: No value for $TERM and no -T specified&#xA;armv7a-linux-androideabi21-clang is unable to create an executable file.&#xA;C compiler test failed.&#xA;&#xA;If you think configure made a mistake, make sure you are using the latest&#xA;version from Git.  If the latest version fails, report the problem to the&#xA;ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.&#xA;Include the log file "ffbuild/config.log" produced by configure as this will help&#xA;solve the problem.&#xA;&#xA;&#xA;  STDERR:&#xA;&#xA;# Command failed: /usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=myapp --bootstrap=sdl2 --requirements=python3,ffpyplayer,kivy,openssl,certifi,android,pytube,plyer,pyjnius,kivmob,jnius,future,libshine,libx264,ffpyplayer_codecs,Pillow,liblzma,opencv,requests,urllib3,chardet,idna,youtube_search --arch armeabi-v7a --copy-libs --color=always --storage-dir="/content/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=21 --ignore-setup-py --debug&#xA;# ENVIRONMENT:&#xA;#     NV_LIBCUBLAS_DEV_VERSION = &#x27;11.4.1.1043-1&#x27;&#xA;#     NV_CUDA_COMPAT_PACKAGE = &#x27;cuda-compat-11-2&#x27;&#xA;#     NV_CUDNN_PACKAGE_DEV = &#x27;libcudnn8-dev=8.1.1.33-1&#x2B;cuda11.2&#x27;&#xA;#     PYDEVD_USE_FRAME_EVAL = &#x27;NO&#x27;&#xA;#     LD_LIBRARY_PATH = &#x27;/usr/local/nvidia/lib:/usr/local/nvidia/lib64&#x27;&#xA;#     NV_LIBNCCL_DEV_PACKAGE = &#x27;libnccl-dev=2.8.4-1&#x2B;cuda11.2&#x27;&#xA;#     TCLLIBPATH = &#x27;/usr/share/tcltk/tcllib1.19&#x27;&#xA;#     CLOUDSDK_PYTHON = &#x27;python3&#x27;&#xA;#     LANG = &#x27;en_US.UTF-8&#x27;&#xA;#     NV_LIBNPP_DEV_PACKAGE = &#x27;libnpp-dev-11-2=11.3.2.152-1&#x27;&#xA;#     ENABLE_DIRECTORYPREFETCHER = &#x27;1&#x27;&#xA;#     HOSTNAME = &#x27;875ade0bb031&#x27;&#xA;#     OLDPWD = &#x27;/&#x27;&#xA;#     CLOUDSDK_CONFIG = &#x27;/content/.config&#x27;&#xA;#     USE_AUTH_EPHEM = &#x27;1&#x27;&#xA;#     NV_LIBNPP_VERSION = &#x27;11.3.2.152-1&#x27;&#xA;#     NV_NVPROF_DEV_PACKAGE = &#x27;cuda-nvprof-11-2=11.2.152-1&#x27;&#xA;#     NVIDIA_VISIBLE_DEVICES = &#x27;all&#x27;&#xA;#     NV_NVPROF_VERSION = &#x27;11.2.152-1&#x27;&#xA;#     NV_LIBCUSPARSE_VERSION = &#x27;11.4.1.1152-1&#x27;&#xA;#     DATALAB_SETTINGS_OVERRIDES = &#x27;{"kernelManagerProxyPort":6000,"kernelManagerProxyHost":"172.28.0.3","jupyterArgs":["--ip=172.28.0.2"],"debugAdapterMultiplexerPath":"/usr/local/bin/dap_multiplexer","enableLsp":true}&#x27;&#xA;#     NV_LIBCUBLAS_DEV_PACKAGE = &#x27;libcublas-dev-11-2=11.4.1.1043-1&#x27;&#xA;#     ENV = &#x27;/root/.bashrc&#x27;&#xA;#     PAGER = &#x27;cat&#x27;&#xA;#     NCCL_VERSION = &#x27;2.8.4-1&#x27;&#xA;#     TF_FORCE_GPU_ALLOW_GROWTH = &#x27;true&#x27;&#xA;#     JPY_PARENT_PID = &#x27;60&#x27;&#xA;#     NO_GCE_CHECK = &#x27;False&#x27;&#xA;#     PWD = &#x27;/content&#x27;&#xA;#     NVARCH = &#x27;x86_64&#x27;&#xA;#     NV_LIBCUSPARSE_DEV_VERSION = &#x27;11.4.1.1152-1&#x27;&#xA;#     HOME = &#x27;/root&#x27;&#xA;#     KMP_LISTEN_PORT = &#x27;6000&#x27;&#xA;#     LAST_FORCED_REBUILD = &#x27;20221021&#x27;&#xA;#     CLICOLOR = &#x27;1&#x27;&#xA;#     NV_LIBNCCL_PACKAGE_VERSION = &#x27;2.8.4-1&#x27;&#xA;#     NV_LIBNCCL_PACKAGE = &#x27;libnccl2=2.8.4-1&#x2B;cuda11.2&#x27;&#xA;#     DEBIAN_FRONTEND = &#x27;noninteractive&#x27;&#xA;#     NV_LIBNCCL_DEV_PACKAGE_NAME = &#x27;libnccl-dev&#x27;&#xA;#     NV_CUDA_LIB_VERSION = &#x27;11.2.2-1&#x27;&#xA;#     NV_LIBNPP_PACKAGE = &#x27;libnpp-11-2=11.3.2.152-1&#x27;&#xA;#     NV_LIBNCCL_PACKAGE_NAME = &#x27;libnccl2&#x27;&#xA;#     LIBRARY_PATH = &#x27;/usr/local/cuda/lib64/stubs&#x27;&#xA;#     NV_NVTX_VERSION = &#x27;11.2.152-1&#x27;&#xA;#     NV_LIBCUBLAS_VERSION = &#x27;11.4.1.1043-1&#x27;&#xA;#     NV_LIBCUBLAS_PACKAGE = &#x27;libcublas-11-2=11.4.1.1043-1&#x27;&#xA;#     GCE_METADATA_TIMEOUT = &#x27;3&#x27;&#xA;#     NV_CUDNN_VERSION = &#x27;8.1.1.33&#x27;&#xA;#     VM_GCE_METADATA_HOST = &#x27;169.254.169.254&#x27;&#xA;#     NV_CUDA_CUDART_DEV_VERSION = &#x27;11.2.152-1&#x27;&#xA;#     KMP_TARGET_PORT = &#x27;9000&#x27;&#xA;#     GLIBCPP_FORCE_NEW = &#x27;1&#x27;&#xA;#     TBE_CREDS_ADDR = &#x27;172.28.0.1:8008&#x27;&#xA;#     TERM = &#x27;xterm-color&#x27;&#xA;#     SHELL = &#x27;/bin/bash&#x27;&#xA;#     GCS_READ_CACHE_BLOCK_SIZE_MB = &#x27;16&#x27;&#xA;#     NV_NVML_DEV_VERSION = &#x27;11.2.152-1&#x27;&#xA;#     PYTHONWARNINGS = &#x27;ignore:::pip._internal.cli.base_command&#x27;&#xA;#     MPLBACKEND = &#x27;module://ipykernel.pylab.backend_inline&#x27;&#xA;#     CUDA_VERSION = &#x27;11.2.2&#x27;&#xA;#     NV_LIBCUBLAS_PACKAGE_NAME = &#x27;libcublas-11-2&#x27;&#xA;#     NVIDIA_DRIVER_CAPABILITIES = &#x27;compute,utility&#x27;&#xA;#     TBE_RUNTIME_ADDR = &#x27;172.28.0.1:8011&#x27;&#xA;#     SHLVL = &#x27;1&#x27;&#xA;#     PYTHONPATH = &#x27;/env/python&#x27;&#xA;#     NV_LIBCUBLAS_DEV_PACKAGE_NAME = &#x27;libcublas-dev-11-2&#x27;&#xA;#     NVIDIA_REQUIRE_CUDA = (&#x27;cuda>=11.2 brand=tesla,driver>=418,driver&lt;419 &#x27;&#xA; &#x27;brand=tesla,driver>=450,driver&lt;451&#x27;)&#xA;#     NV_LIBNPP_DEV_VERSION = &#x27;11.3.2.152-1&#x27;&#xA;#     TBE_EPHEM_CREDS_ADDR = &#x27;172.28.0.1:8009&#x27;&#xA;#     NV_CUDA_CUDART_VERSION = &#x27;11.2.152-1&#x27;&#xA;#     NV_CUDNN_PACKAGE_NAME = &#x27;libcudnn8&#x27;&#xA;#     GLIBCXX_FORCE_NEW = &#x27;1&#x27;&#xA;#     PATH = &#x27;/root/.buildozer/android/platform/apache-ant-1.9.4/bin:/opt/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tools/node/bin:/tools/google-cloud-sdk/bin&#x27;&#xA;#     NV_LIBNCCL_DEV_PACKAGE_VERSION = &#x27;2.8.4-1&#x27;&#xA;#     LD_PRELOAD = &#x27;/usr/lib/x86_64-linux-gnu/libtcmalloc.so.4&#x27;&#xA;#     NV_CUDNN_PACKAGE = &#x27;libcudnn8=8.1.1.33-1&#x2B;cuda11.2&#x27;&#xA;#     GIT_PAGER = &#x27;cat&#x27;&#xA;#     _ = &#x27;/usr/local/bin/buildozer&#x27;&#xA;#     PACKAGES_PATH = &#x27;/root/.buildozer/android/packages&#x27;&#xA;#     ANDROIDSDK = &#x27;/root/.buildozer/android/platform/android-sdk&#x27;&#xA;#     ANDROIDNDK = &#x27;/root/.buildozer/android/platform/android-ndk-r23b&#x27;&#xA;#     ANDROIDAPI = &#x27;30&#x27;&#xA;#     ANDROIDMINAPI = &#x27;21&#x27;&#xA;# &#xA;# Buildozer failed to execute the last command&#xA;# The error might be hidden in the log above this error&#xA;# Please read the full log, and search for it before&#xA;# raising an issue with buildozer itself.&#xA;# In case of a bug report, please add a full log with log_level = 2&#xA;</module>

    &#xA;

    kindly help me anyone would be very appreciate thank you.

    &#xA;

  • Using FFmpeg to stitch together H.264 videos and variably-spaced JPEG pictures ; dealing with ffmpeg warnings

    19 octobre 2022, par LB2

    Context

    &#xA;

    I have a process flow that may output either H.264 Annex B streams, variably-spaced JPEGs, or a mixture of two. By variably-spaced I mean where elapsed time between any two adjacent JPEGs may (and likely to be) different from any other two adjacent JPEGs. So an example of possible inputs are :

    &#xA;

      &#xA;
    1. stream1.h264
    2. &#xA;

    3. {Set of JPEGs}
    4. &#xA;

    5. stream1.h264 &#x2B; stream2.h264
    6. &#xA;

    7. stream1.h264 &#x2B; {Set of JPEGs}
    8. &#xA;

    9. stream1.h264 &#x2B; {Set of JPEGs} &#x2B; stream2.h264
    10. &#xA;

    11. stream1.h264 &#x2B; {Set of JPEGs} &#x2B; stream2.h264 &#x2B; {Set of JPEGs} &#x2B; ...
    12. &#xA;

    13. stream1.h264 &#x2B; stream2.h264 &#x2B; {Set of JPEGs} &#x2B; ...
    14. &#xA;

    &#xA;

    The output needs to be a single stitched (i.e. concatenated) output in MPEG-4 container.

    &#xA;

    Requirements : No re-encoding or transcoding of existing video compression (One time conversion of JPEG sets to video format is OKay).

    &#xA;

    Solution Prototype

    &#xA;

    To prototype the solution I have found that ffmpeg has concat demuxer that would let me specify an ordered sequence of inputs that ffmpeg would then concatenate together, but all inputs must be of the same format. So, to meet that requirement, I :

    &#xA;

      &#xA;
    1. Convert every JPEG set to an .mp4 using concat (and using delay # directive to specify time-spacing between each JPEG)
    2. &#xA;

    3. Convert every .h264 to .mp4 using -c copy to avoid transcoding.
    4. &#xA;

    5. Stitch all generated interim .mp4 files into the single final .mp4 using -f concat and -c copy.
    6. &#xA;

    &#xA;

    Here's the bash script, in parts, that performs the above :

    &#xA;

      &#xA;
    1. Ignore the curl comment ; that's from originally generating a 100 jpeg images with numbers and these are simply saved locally. What the loop does is it generates concat input file with file sequence#.jpeg directives and duration # directive where each successive JPEG delay is incremented by 0.1 seconds (0.1 between first and second, 0.2 b/w 2nd and 3rd, 0.3 b/w 3rd and 4th, and so on). Then it runs ffmpeg command to convert the set of JPEGs to .mp4 interim file.

      &#xA;

      echo "ffconcat version 1.0" >ffconcat-jpeg.txt&#xA;echo >>ffconcat-jpeg.txt&#xA;&#xA;for i in {1..100}&#xA;do&#xA;    echo "file $i.jpeg" >>ffconcat-jpeg.txt&#xA;    d=$(echo "$i" | awk &#x27;{printf "%f", $1 / 10}&#x27;)&#xA;    # d=$(echo "scale=2; $i/10" | bc)&#xA;    echo "duration $d" >>ffconcat-jpeg.txt&#xA;    echo "" >>ffconcat-jpeg.txt&#xA;    # curl -o "$i.jpeg" "https://math.tools/equation/get_equaimages?equation=$i&amp;fontsize=256"&#xA;done&#xA;&#xA;ffmpeg \&#xA;    -hide_banner \&#xA;    -vsync vfr \&#xA;    -f concat \&#xA;    -i ffconcat-jpeg.txt \&#xA;    -r 30 \&#xA;    -video_track_timescale 90000 \&#xA;    video-jpeg.mp4&#xA;

      &#xA;

    2. &#xA;

    3. Convert two streams from .h264 to .mp4 via copy (no transcoding).

      &#xA;

      ffmpeg \&#xA;    -hide_banner \&#xA;    -i low-motion-video.h264 \&#xA;    -c copy \&#xA;    -vsync vfr \&#xA;    -video_track_timescale 90000 \&#xA;    low-motion-video.mp4&#xA;&#xA;ffmpeg \&#xA;    -hide_banner \&#xA;    -i full-video.h264 \&#xA;    -c copy \&#xA;    -video_track_timescale 90000 \&#xA;    -vsync vfr \&#xA;    full-video.mp4&#xA;

      &#xA;

    4. &#xA;

    5. Stitch all together by generating another concat directive file.

      &#xA;

      echo "ffconcat version 1.0" >ffconcat-h264.txt&#xA;echo >>ffconcat-h264.txt&#xA;echo "file low-motion-video.mp4" >>ffconcat-h264.txt&#xA;echo >>ffconcat-h264.txt&#xA;echo "file full-video.mp4" >>ffconcat-h264.txt&#xA;echo >>ffconcat-h264.txt&#xA;echo "file video-jpeg.mp4" >>ffconcat-h264.txt&#xA;echo >>ffconcat-h264.txt&#xA;&#xA;ffmpeg \&#xA;    -hide_banner \&#xA;    -f concat \&#xA;    -i ffconcat-h264.txt \&#xA;    -pix_fmt yuv420p \&#xA;    -c copy \&#xA;    -video_track_timescale 90000 \&#xA;    -vsync vfr \&#xA;    video-out.mp4&#xA;&#xA;

      &#xA;

    6. &#xA;

    &#xA;

    Problem (and attempted troubleshooting)

    &#xA;

    The above does produce a reasonable output — it plays first video, then plays second video with no timing/rate issues AFAICT, then plays JPEGs with time between each JPEG "frame" growing successively, as expected.

    &#xA;

    But, the conversion process produces warnings that concern me (for compatibility with players ; or potentially other IRL streams that may result in some issue my prototyping content doesn't make obvious). Initial attempts generated 100s of warnings, but with some arguments added, I reduced it down to just a handful, but this handful is stubborn and nothing I tried would help.

    &#xA;

    The first conversion of JPEGs to .mp4 goes fine with the following output :

    &#xA;

    Input #0, concat, from &#x27;ffconcat-jpeg.txt&#x27;:&#xA;  Duration: 00:08:25.00, start: 0.000000, bitrate: 0 kb/s&#xA;  Stream #0:0: Video: png, pal8(pc), 176x341 [SAR 3780:3780 DAR 16:31], 25 fps, 25 tbr, 25 tbn, 25 tbc&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))&#xA;Press [q] to stop, [?] for help&#xA;[libx264 @ 0x7fe418008e00] using SAR=1/1&#xA;[libx264 @ 0x7fe418008e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2&#xA;[libx264 @ 0x7fe418008e00] profile High 4:4:4 Predictive, level 1.3, 4:4:4, 8-bit&#xA;[libx264 @ 0x7fe418008e00] 264 - core 163 r3060 5db6aa6 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - 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=4 threads=11 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&#xA;Output #0, mp4, to &#x27;video-jpeg.mp4&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf58.76.100&#xA;  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv444p(tv, progressive), 176x341 [SAR 1:1 DAR 16:31], q=2-31, 30 fps, 90k tbn&#xA;    Metadata:&#xA;      encoder         : Lavc58.134.100 libx264&#xA;    Side data:&#xA;      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A&#xA;frame=  100 fps=0.0 q=-1.0 Lsize=     157kB time=00:07:55.33 bitrate=   2.7kbits/s speed=2.41e&#x2B;03x    &#xA;video:155kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.800846%&#xA;[libx264 @ 0x7fe418008e00] frame I:1     Avg QP:20.88  size:   574&#xA;[libx264 @ 0x7fe418008e00] frame P:43    Avg QP:14.96  size:  2005&#xA;[libx264 @ 0x7fe418008e00] frame B:56    Avg QP:21.45  size:  1266&#xA;[libx264 @ 0x7fe418008e00] consecutive B-frames: 14.0% 24.0% 30.0% 32.0%&#xA;[libx264 @ 0x7fe418008e00] mb I  I16..4: 36.4% 55.8%  7.9%&#xA;[libx264 @ 0x7fe418008e00] mb P  I16..4:  5.1%  7.5% 11.2%  P16..4:  5.6%  8.1%  4.5%  0.0%  0.0%    skip:57.9%&#xA;[libx264 @ 0x7fe418008e00] mb B  I16..4:  2.4%  0.9%  3.9%  B16..8: 16.2%  8.8%  4.6%  direct: 1.2%  skip:62.0%  L0:56.6% L1:38.7% BI: 4.7%&#xA;[libx264 @ 0x7fe418008e00] 8x8 transform intra:28.3% inter:3.7%&#xA;[libx264 @ 0x7fe418008e00] coded y,u,v intra: 26.5% 0.0% 0.0% inter: 9.8% 0.0% 0.0%&#xA;[libx264 @ 0x7fe418008e00] i16 v,h,dc,p: 82% 13%  4%  0%&#xA;[libx264 @ 0x7fe418008e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20%  8% 71%  1%  0%  0%  0%  0%  0%&#xA;[libx264 @ 0x7fe418008e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 41% 11% 29%  4%  2%  3%  1%  7%  1%&#xA;[libx264 @ 0x7fe418008e00] Weighted P-Frames: Y:0.0% UV:0.0%&#xA;[libx264 @ 0x7fe418008e00] ref P L0: 44.1%  4.2% 28.4% 23.3%&#xA;[libx264 @ 0x7fe418008e00] ref B L0: 56.2% 32.1% 11.6%&#xA;[libx264 @ 0x7fe418008e00] ref B L1: 92.4%  7.6%&#xA;[libx264 @ 0x7fe418008e00] kb/s:2.50&#xA;

    &#xA;

    The conversion of individual streams from .h264 to .mp4 generates two types of warnings each. One is [mp4 @ 0x7faee3040400] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly, and the other is [mp4 @ 0x7faee3040400] pts has no value.

    &#xA;

    Some posts on SO (can't find my original finds on that now) suggested that it's safe to ignore and comes from H.264 being an elementary stream that supposedly doesn't contain timestamps. It surprises me a bit since I produce that stream using NVENC API and clearly supply timing information for each frame via PIC_PARAMS structure : NV_STRUCT(PIC_PARAMS, pp); ...; pp.inputTimeStamp = _frameIndex&#x2B;&#x2B; * (H264_CLOCK_RATE / _params.frameRate);, where #define H264_CLOCK_RATE 9000 and _params.frameRate = 30.

    &#xA;

    Input #0, h264, from &#x27;low-motion-video.h264&#x27;:&#xA;  Duration: N/A, bitrate: N/A&#xA;  Stream #0:0: Video: h264 (High), yuv420p(progressive), 1440x3040 [SAR 1:1 DAR 9:19], 30 fps, 30 tbr, 1200k tbn, 60 tbc&#xA;Output #0, mp4, to &#x27;low-motion-video.mp4&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf58.76.100&#xA;  Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1440x3040 [SAR 1:1 DAR 9:19], q=2-31, 30 fps, 30 tbr, 90k tbn, 1200k tbc&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (copy)&#xA;Press [q] to stop, [?] for help&#xA;[mp4 @ 0x7faee3040400] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly&#xA;[mp4 @ 0x7faee3040400] pts has no value&#xA;[mp4 @ 0x7faee3040400] pts has no value0kB time=-00:00:00.03 bitrate=N/A speed=N/A    &#xA;    Last message repeated 17985 times&#xA;frame=17987 fps=0.0 q=-1.0 Lsize=   79332kB time=00:09:59.50 bitrate=1084.0kbits/s speed=1.59e&#x2B;03x    &#xA;video:79250kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.103804%&#xA;Input #0, h264, from &#x27;full-video.h264&#x27;:&#xA;  Duration: N/A, bitrate: N/A&#xA;  Stream #0:0: Video: h264 (High), yuv420p(progressive), 1440x3040 [SAR 1:1 DAR 9:19], 30 fps, 30 tbr, 1200k tbn, 60 tbc&#xA;Output #0, mp4, to &#x27;full-video.mp4&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf58.76.100&#xA;  Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1440x3040 [SAR 1:1 DAR 9:19], q=2-31, 30 fps, 30 tbr, 90k tbn, 1200k tbc&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (copy)&#xA;Press [q] to stop, [?] for help&#xA;[mp4 @ 0x7f9381864600] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly&#xA;[mp4 @ 0x7f9381864600] pts has no value&#xA;[mp4 @ 0x7f9381864600] pts has no value0kB time=-00:00:00.03 bitrate=N/A speed=N/A    &#xA;    Last message repeated 17981 times&#xA;frame=17983 fps=0.0 q=-1.0 Lsize=   52976kB time=00:09:59.36 bitrate= 724.1kbits/s speed=1.33e&#x2B;03x    &#xA;video:52893kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.156232%&#xA;

    &#xA;

    But the most worrisome error for me is from stitching together all interim .mp4 files into one :

    &#xA;

    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f9ff2010e00] Auto-inserting h264_mp4toannexb bitstream filter&#xA;Input #0, concat, from &#x27;ffconcat-h264.txt&#x27;:&#xA;  Duration: N/A, bitrate: 1082 kb/s&#xA;  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1440x3040 [SAR 1:1 DAR 9:19], 1082 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;      vendor_id       : [0][0][0][0]&#xA;Output #0, mp4, to &#x27;video-out.mp4&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf58.76.100&#xA;  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1440x3040 [SAR 1:1 DAR 9:19], q=2-31, 1082 kb/s, 30 fps, 30 tbr, 90k tbn, 90k tbc&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;      vendor_id       : [0][0][0][0]&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (copy)&#xA;Press [q] to stop, [?] for help&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f9fe1009c00] Auto-inserting h264_mp4toannexb bitstream filter&#xA;[mp4 @ 0x7f9ff2023400] Non-monotonous DTS in output stream 0:0; previous: 53954460, current: 53954460; changing to 53954461. This may result in incorrect timestamps in the output file.&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f9fd1008a00] Auto-inserting h264_mp4toannexb bitstream filter&#xA;[mp4 @ 0x7f9ff2023400] Non-monotonous DTS in output stream 0:0; previous: 107900521, current: 107874150; changing to 107900522. This may result in incorrect timestamps in the output file.&#xA;[mp4 @ 0x7f9ff2023400] Non-monotonous DTS in output stream 0:0; previous: 107900522, current: 107886150; changing to 107900523. This may result in incorrect timestamps in the output file.&#xA;frame=36070 fps=0.0 q=-1.0 Lsize=  132464kB time=00:27:54.26 bitrate= 648.1kbits/s speed=6.54e&#x2B;03x    &#xA;video:132296kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.126409%&#xA;

    &#xA;

    I'm not sure how to deal with those non-monotonous DTS errors, and no matter what I try, nothing budges. I analyzed the interim .mp4 files using ffprobe -show_frames and found that the last frame of each interim .mp4 does not have DTS, while previous frames do. E.g. :

    &#xA;

    ...&#xA;[FRAME]&#xA;media_type=video&#xA;stream_index=0&#xA;key_frame=0&#xA;pkt_pts=53942461&#xA;pkt_pts_time=599.360678&#xA;pkt_dts=53942461&#xA;pkt_dts_time=599.360678&#xA;best_effort_timestamp=53942461&#xA;best_effort_timestamp_time=599.360678&#xA;pkt_duration=3600&#xA;pkt_duration_time=0.040000&#xA;pkt_pos=54161377&#xA;pkt_size=1034&#xA;width=1440&#xA;height=3040&#xA;pix_fmt=yuv420p&#xA;sample_aspect_ratio=1:1&#xA;pict_type=B&#xA;coded_picture_number=17982&#xA;display_picture_number=0&#xA;interlaced_frame=0&#xA;top_field_first=0&#xA;repeat_pict=0&#xA;color_range=unknown&#xA;color_space=unknown&#xA;color_primaries=unknown&#xA;color_transfer=unknown&#xA;chroma_location=left&#xA;[/FRAME]&#xA;[FRAME]&#xA;media_type=video&#xA;stream_index=0&#xA;key_frame=0&#xA;pkt_pts=53927461&#xA;pkt_pts_time=599.194011&#xA;pkt_dts=N/A&#xA;pkt_dts_time=N/A&#xA;best_effort_timestamp=53927461&#xA;...&#xA;

    &#xA;

    My guess is that as concat demuxer reads in (or elsewhere in ffmpeg's conversion pipeline), for the last frame it sees no DTS set, and produces a virtual value equal to the last seen. Then further in pipeline it consumes this input, sees that DTS value is being repeated, issues a warning and offsets it with increment by one, which might be somewhat nonsensical/unrealistic timing value.

    &#xA;

    I tried using -fflags &#x2B;genpts as suggested in this SO answer, but that doesn't change anything.

    &#xA;

    Per yet other posts suggesting issue being with incompatible tbn and tbc values and possible timebase issues, I tried adding -time_base 1:90000 and -enc_time_base 1:90000 and -copytb 1 and nothing budges. The -video_track_timescale 90000 is there b/c it helped reduce those DTS warnings from 100s down to 3, but doesn't eliminate them all.

    &#xA;

    Question

    &#xA;

    What is missing and how can I get ffmpeg to perform conversions without these warnings, to be sure it produces proper, well-formed output ?

    &#xA;

  • sws/aarch64/yuv2rgb : honor iOS calling convention

    8 avril 2016, par Clément Bœsch
    sws/aarch64/yuv2rgb : honor iOS calling convention
    

    y_offset and y_coeff being successive 32-bit integers, they are packed
    into 8 bytes instead of 2x8 bytes.

    See https://developer.apple.com/library/ios/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html

    > iOS diverges from Procedure Call Standard for the ARM 64-bit
    > Architecture in several ways
    [...]
    > In the generic procedure call standard, all function arguments passed
    > on the stack consume slots in multiples of 8 bytes. In iOS, this
    > requirement is dropped, and values consume only the space required.
    [...]
    > Padding is still inserted on the stack to satisfy arguments’ alignment
    > requirements.

    • [DH] libswscale/aarch64/yuv2rgb_neon.S